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

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.

X

Fehler melden

X

Suche