This is an old revision of the document!
Methoden (Funktionen in Klassen)
Tic Tac Toe
Diese Aufgabe entspricht dieser Aufgabe im Kapitel Funktionen.
- Schreiben Sie eine Klasse
TicTacToe
mit einem Konstruktor, der ein leeres 3×3-Feld anlegt:
class TicTacToe: def __init__(self): # Konstruktor, wird beim Anlegen einer neuen Instanz aufgerufen. # Ein 3x3 Feld initialisieren self.feld = [] # TODO t = TicTacToe() # Neue Instanz print(t) # Noch nicht spannend...
- Fügen Sie eine Methode
str(self)
hinzu, die einen String zurückgibt, die das aktuelle Spielfeld darstellt. Z.B. wennfeld=0,1,1], [2,1,2], [0,2,2
dann soll die Ausgabe wie folgt sein:
| X | ---+---+--- O | O | X ---+---+--- O | X | X
Damit kann das Feld einfach mit
print(t)
ausgegeben werden. Die Methode str
wird automatisch aufgerufen, falls diese existiert. Genau genommen, wird sonst die str
Methode der Grund-Klasse object
aufgerufen, von der alle Klassen erben.
Bauen Sie die Klasse mit folgenden Methoden aus:
isEmpty(x,y)
: LiefertTrue
, wenn das entsprechende Feld existiert und noch leer ist.place(x,y,player)
: Platziert ein 'O' oder 'X', je nach Wert vonplayer
(1 oder 2).winner()
: Liefert 0, wenn niemand gewonnen hat, oder 1 oder 2, wenn der entsprechende Spieler gewonnen hat.full()
: LiefertTrue
, wenn das Feld voll ist.reset()
: löscht das Spielfeld