Chuck-a-luck
Zustand | erlaubte Aktion | neuer Zustand |
bereit | tippen | getippt |
getippt | wuerfeln | gewuerfelt |
gewuerfelt | neuesSpiel | bereit |
# -*- coding: iso-8859-1 -*-
# mk, 6.12.08
from random import randint
class Wuerfel(object):
def __init__(self):
self.__augen = randint(1,6)
def werfen(self):
self.__augen = randint(1,6)
def setAugen(self,a):
self.__augen = a
def getAugen(self):
return self.__augen
class Spielfeld(object):
def __init__(self):
self.__tipp = 0
def setTipp(self,t):
self.__tipp = t
def getTipp(self):
return self.__tipp
class Konto(object):
def __init__(self,betrag):
self.__stand = betrag
def setStand(self,betrag):
self.__stand = betrag
def getStand(self):
return self.__stand
def einzahlen(self,betrag):
self.__stand = self.__stand + betrag
def auszahlen(self,betrag):
self.__stand = self.__stand - betrag
class Spielmanager(object):
def __init__(self,einsatz):
self.w1 = Wuerfel()
self.w2 = Wuerfel()
self.w3 = Wuerfel()
self.feld = Spielfeld()
self.konto = Konto(einsatz)
self.__zustand = 'bereit'
self.__gewinn = 0
def getGewinn(self):
return self.__gewinn
def wuerfeln(self):
if self.__zustand == 'getippt':
# würfeln
self.w1.werfen()
self.w2.werfen()
self.w3.werfen()
# Augenzahlen ablesen
a1 = self.w1.getAugen()
a2 = self.w2.getAugen()
a3 = self.w3.getAugen()
# Tipp erfragen
tipp = self.feld.getTipp()
# Auswertung
treffer = 0
if a1 == tipp:
treffer = treffer + 1
if a2 == tipp:
treffer = treffer + 1
if a3 == tipp:
treffer = treffer + 1
if treffer == 0:
self.__gewinn = 0
elif treffer == 1:
self.__gewinn = 2
elif treffer == 2:
self.__gewinn = 3
elif treffer == 3:
self.__gewinn = 4
# Gewinn verbuchen
self.konto.einzahlen(self.__gewinn)
# neuer Zustand
self.__zustand = 'gewuerfelt'
else:
print 'Wuerfeln nicht möglich!'
def tippen(self,tipp):
if self.__zustand == 'bereit':
self.konto.auszahlen(1)
self.feld.setTipp(tipp)
self.__zustand = 'getippt'
else:
print 'Tippen nicht möglich!'
def neuesSpiel(self):
if self.__zustand == 'gewuerfelt':
self.feld.setTipp(0) # 0 steht für Spielfeld leer
self.__zustand = 'bereit'
else:
print 'Neues Spiel nicht möglich!'
Beispiel-Sitzung
Links