def __init__(self, name): self.name = name self.teilnehmend = True self.becher = Becher(self) self.spielerWuerfel = [Wuerfel(), Wuerfel(), Wuerfel()] self.strafsteine = 0 self.markierungsstein = 0
class Spieler(object): def __init__(self, name): self.name = name self.teilnehmend = True self.becher = Becher(self) self.spielerWuerfel = [Wuerfel(), Wuerfel(), Wuerfel()] self.strafsteine = 0 self.markierungsstein = 0 def __str__(self): return self.name def alle_wuerfel_in_becher_legen(self): anzahl_in_becher_gelegt = len(self.spielerWuerfel) if Config.LOG_WUERFE: print("{0} legt {1} Würfel in den Becher.".format(self, anzahl_in_becher_gelegt)) self.becher.befuellen(self.spielerWuerfel) return anzahl_in_becher_gelegt def random_wuerfel_in_becher_legen(self): r = random.randint(0, len(self.spielerWuerfel)) if r != 0: if Config.LOG_WUERFE: print("{0} legt {1} Würfel zurück in den Becher.".format(self, r)) for x in range(0, r): w = self.spielerWuerfel.pop(random.randrange(len(self.spielerWuerfel))) self.becher.befuelle(w) else: if Config.LOG_WUERFE: print("{0} legt keine Würfel zurück in den Becher.".format(self)) return r def wuerfeln(self): if Config.LOG_WUERFE: print("{0} würfelt".format(self)) self.becher.wuerfeln() def aufdecken(self): if Config.LOG_WUERFE: print("{0} deckt auf".format(self)) aufgedeckte_wuerfel = self.becher.aufdecken() self.spielerWuerfel = sorted(self.spielerWuerfel + aufgedeckte_wuerfel) return aufgedeckte_wuerfel def alle_wuerfel_aus_becher_holen(self): self.spielerWuerfel = self.becher.entnehme_alle_wuerfel() def add_strafsteine(self, anzahl): self.strafsteine += anzahl def has_strafsteine(self): return self.strafsteine > 0 def erase_strafsteine(self): self.strafsteine = 0 def erase_markierungsstein(self): self.markierungsstein = 0 def verteile_strafsteine(self, verlierer, anzahl): if anzahl >= self.strafsteine: anzahl = self.strafsteine verlierer.add_strafsteine(anzahl) self.strafsteine -= anzahl return anzahl def has_haelfte_verloren(self): return self.strafsteine >= Config.MAX_STRAFSTEINE def has_markierungsstein(self): return self.markierungsstein > 0 def add_markierungsstein(self): self.markierungsstein += 1