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.