Warum werden in diesem Code Klassen verwendet?

Also was für einen Vorteil hat das?:

Der Code ist für ein Tic-Tac-Toe-Spiel

class Board():
    def __init__(self):
        self.state = [0, 0, 0, 0, 0, 0, 0, 0, 0]

    def make_turn(self, cell, player):
        if self.is_valid_turn(cell):
            self.state[cell] = player.symbol
            return True
        return False

    def is_valid_turn(self, cell):
        if self.state[cell] == 0:
            return True
        else:
            return False

    def check_win(self, player):
        s = player.symbol
        if self.state[0] == s and self.state[1] == s and self.state[2] == s:
            return True
        elif self.state[3] == s and self.state[4] == s and self.state[5] == s:
            return True
        elif self.state[6] == s and self.state[7] == s and self.state[8] == s:
            return True

        elif self.state[0] == s and self.state[3] == s and self.state[6] == s:
            return True
        elif self.state[1] == s and self.state[4] == s and self.state[7] == s:
            return True
        elif self.state[2] == s and self.state[5] == s and self.state[8] == s:
            return True

        elif self.state[0] == s and self.state[4] == s and self.state[8] == s:
            return True
        elif self.state[2] == s and self.state[4] == s and self.state[6] == s:
            return True

    def is_full(self):
        for i in self.state:
            if i == 0:
                return False
        return True

    def sign_to_printable(self, sign):
        if sign == 0:
            return " "
        elif sign == 1:
            return "X"
        else:
            return "O"

    def print_board(self):
        print(" " + self.sign_to_printable(self.state[0]) + " | " + self.sign_to_printable(self.state[1]) + " | " + self.sign_to_printable(self.state[2]) + " \n" +
              " " + self.sign_to_printable(self.state[3]) + " | " + self.sign_to_printable(self.state[4]) + " | " + self.sign_to_printable(self.state[5]) + " \n" +
              " " + self.sign_to_printable(self.state[6]) + " | " + self.sign_to_printable(self.state[7]) + " | " + self.sign_to_printable(self.state[8]) + " \n")


class Player:
    def __init__(self, symbol):
        self.symbol = symbol


if __name__ == '__main__':
    player_a = Player(1)
    player_b = Player(-1)
    board = Board()
    active_player = player_a
    while not board.is_full():
        board.print_board()
        try:
            cell = int(input("Where do you want to place your sign? [1-9]"))
        except ValueError:
            continue
        cell = cell - 1
        if cell < 0 or cell > 8:
            print("Please enter a number between 1 and 9")
            continue
        if not board.make_turn(cell, active_player):
            print("Invalid Move")
            continue

        if board.check_win(active_player):
            print("You wonnered! GW.")
            break

        if …
IT, programmieren, Informatik, Programmiersprache, Python, Instanz, Python 3, Objektorientierte Programmierung
Excel | Diabook - "DiaSearch"?

Guten Morgen zusammen.

Ich bin Robin, 24 Jahre alt und habe Diabetes Typ 1.

Seit einiger Zeit habe ich ein Projekt in mein Leben gerufen das mir wirklich sehr am Herzen liegt und das ich mit vollster Leidenschaft betreibe. Dabei handelt es sich um mein Privates:

Diabetes - "Diabolic-Management System." welches ich selbstständig entwickle.

Dazu habe ich bereits schon mehrere Fragen im Bezug zu Excel gehabt weil ich vorher manche Dinge nicht wusste. Und ich habe auch schon einiges hinbekommen. Allerdings möchte ich das alles nochmal "frisch" überarbeiten.

Ich möchte hier auch nichts Verkaufen oder sowas. Ich benötige lediglich weitere Hilfe bei etwas. Mehr nicht.

Und zwar hatte ich viele einzelne Dinge gebaut die ich nun in einem Dokument an einem einzigen Zentralen Ort haben möchte. Und darum geht's:

Nährwertrechner, Insulinrechner, Tagebuch usw. waren bisher alle Eigene Teile. Diese möchte ich nun alle zu einem zusammenführen. Nun möchte ich das alles in einem Dokument Namens "Diabook" aufbauen.

Sooo und vorher kam mir ein wunderbarer und sehr Ausschlaggebender Gedanke: "DiaSearch" die Suchmaschine die wie so eine Art Google sein soll nur im Bezug auf Lebensmittel und der Lebensmitteldatenbank die ich sowieso baue. Diese nutzt man dann Generell im Tagebuch als Dropdown Menü für die Eintragung von Mahlzeiten oder Lebensmitteln die man isst aber das ist ein anderes Thema.

Meine Idee war es "DiaSearch" einzubauen um jederzeit abhängig von Mahlzeiten schauen zu können wie viel ein Apfel oder sowas an Kohlenhydrate hat. Somit muss man nicht ständig im Tagebuch zurückgreifen um dort nachzuschauen sondern kann wie Google einfach allesmögliche Suchen. Geplant ist auch mit Filter.

Ich habe da mal eine extra Skizze für euch gemacht damit ihr euch das etwas Vorstellen könnt. Und meine Skizze verrät auch so ein wenig worauf ich hinaus will:

Ich möchte das man in der Suchleiste alle möglichen Daten eingeben kann. Namen, ID Nummern und wenn Möglich auch Hashtags um alles finden zu können. Die dazugehörigen Nährwerte sollen dann im "Daten-Dashboard" Detailliert Angezeigt werden. Das soll auch Synchron sein - Apfel, ID 01, usw. und dann dort im Dashboard die Nährwert Angaben zu dem Apfel mit allem und nicht irgendwas anderes. Also im Prinzip sollen die Ergebnisse zur Suche übereinstimmen. Egal ob ich Apfel oder #Apfel oder 01 in der Suchleiste eingebe.

Außerdem hätte ich auch gerne Kategorien und Mengen Auswahl dazu. So ein Dropdown wo man dann 1 Stück usw. auswählen kann um die Menge der Kohlenhydrate zu sehen.

Wäre sowas irgendwie machbar und wie? Ich fände das absolut MEGA!! :D

Vielen Dank im Voraus.

Mit besten Grüßen

Robin | TechBrain. :)

Bild zum Beitrag
PC, Computer, Gesundheit, Software, Windows, Microsoft, Office, Microsoft Excel, Programm, IT, programmieren, Diabetes, Formel

Meistgelesene Beiträge zum Thema IT