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.