Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

KIDS

Die Player-Klasse

Implementierung der Player-Klasse

Die Klasse 'Player' ist der Bauplan der Spielerklasse, die den eigentlichen Spielzug ausführen muss. Das bedeutet, sie muss einen Spielzug tätigen, zum Beispiel 'Werfe einen Stein in Spalte 3!'. Deshalb haben wir die Methode playDraw eingeführt. Wie dieser Spielzug in der Methode playDraw nun überhaupt zustande kommt, hängt von unserer eingangs definierten Wahl des Player-Typs ab:

  • Echter Spieler:
    Wenn wir ein Playerobjekt haben, das als 'Echter Spieler' definiert wurde, muss ein echter Mensch eine Eingabe machen. Wo er diese Eingabe letztendlich macht, hängt nicht vom Spieler selbst, sondern von der GUI ab, in der er spielt. Haben wir eine grafische Benutzeroberfläche, kann man die gewünschte Spalte womöglich mit der Maus anklicken. Besteht die GUI nur aus einer Konsole (so wie hier im Beispiel), muss man eine Zahl für die jeweilige Spalte angeben. Wie die GUI das macht, interessiert die Playerklasse aber nicht. Sie soll unabhängig von der GUI eine Spalte auswählen und sie dann weitergeben. Dazu wird von der GUI die Methode getDraw aufrufen und die gewählte Position in der Variable col gespeichert. Der Code sieht dann so aus:
    # Get Draw
    col = gui.getDraw(self.__name)
    return col
    
  • Computergesteuerter Spieler:
    Wenn ein Playerobjekt als 'computergesteuerter Spieler' definiert wurde, muss die Wahl der Spalte bei einem Zug vom Computer gesetzt werden. Wir wollen uns hier noch nicht damit beschäftigen, wie wir dem Computer ein gewisses Maß an Intelligenz beibringen, sondern den Rechner zufällig eine Spalte bestimmen lassen. Um Zufallszahlen zu erzeugen, benötigen wir das Paket random, das wir mit import random in unserer Python-Datei ganz oben einbinden müssen. Danach können wir eine Zufallszahl von 0 bis 6 erzeugen. Der Code sieht dann so aus:
    #Choose a column only since the row will be determined by the state of the field
    col = random.randint(0,6)
    print ("Col: " + str(col))
    return col
    

Aufgabe 1

Implementiere die komplette Methode playDraw(self,gui) mit Hilfe der obigen Code-Ausschnitte. Mache dir dabei bewusst, unter welchen Bedingungen welche Ausschnitte eintreten müssen.

X

Fehler melden

X

Suche