Beispiele [Ampel] [Aufzug] [Digitaluhr] [Parkplatzschranke] [Jalousie] [Garagentor] [Buzzer]
Pfad: [Startseite] / [Fächer] / [Informatik] / [Python] / [OOP] / [Beispiele]
Hohenstaufen-Gymnasium
Kaiserslautern
Autor: mk
Letzte Änderung dieser Seite: 07.12.2008 11:31:39  819

Chuck-a-luck

Zustanderlaubte Aktionneuer Zustand
bereittippengetippt
getipptwuerfelngewuerfelt
gewuerfeltneuesSpielbereit
# -*- 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

Sitzung

Links

Valid XHTML 1.0!