Experimente mit einem implementierten Datenmodell
Nim-Spiel - einfache Variante
Eine implementierte Version des Datenmodells zum Nim-Spiel mit einem Haufen findest du in der Datei nim_einhaufen.py
Mit den vorgegebenen Klassen lässt sich jetzt ein Nim-Spiel wie folgt simulieren:
>>> haufen = Nimhaufen(16) >>> mSpieler = SpielerMensch(haufen) >>> cSpieler = SpielerComputer(haufen) >>> spielmanager = Spielmanager(haufen, mSpieler, cSpieler) >>> spielmanager.ersterSpieler() >>> haufen.getPosition() 16 >>> spielmanager.spielBeendet() False >>> spielmanager.getAktuellerSpieler() 'Computer' >>> spielmanager.zugDurchfuehrenComputer() >>> spielmanager.getZugComputer() 3 >>> haufen.getPosition() 13 >>> spielmanager.spielBeendet() False >>> spielmanager.getAktuellerSpieler() 'Mensch' >>> spielmanager.zugDurchfuehrenMensch(2) >>> haufen.getPosition() 11 >>> spielmanager.spielBeendet() False >>> spielmanager.getAktuellerSpieler() 'Computer' >>> ...
Aufgabe 1
Führe selbst ein solches Nim-Spiel durch. Es sollen nur die zur Verfügung gestellten Methoden der Klassen
Haufen
und Spielmanager
benutzt werden.
Aufgabe 2
Entwickle ein interaktives Programm zur Durchführung eines Nim-Spiels. Hier ein erstes Programmgerüst:
from nim_einhaufen import * # Erzeugung der Objekte haufen = Nimhaufen(16) mSpieler = SpielerMensch(haufen) cSpieler = SpielerComputer(haufen) spielmanager = Spielmanager(haufen, mSpieler, cSpieler) spielmanager.ersterSpieler() # Durchführung des Spiels spielmanager.ersterSpieler() while not spielmanager.spielBeendet(): # ... print('Gewinner: ', spielmanager.getGewinner())
Aufgabe 3
Analog zum Programm oben lässt sich eine Implementierung zum Nim-Spiel mit mehreren Haufen erzeugen.