Seite 1 von 1
Ist das so zulässig
Verfasst: Mittwoch 29. Mai 2013, 19:21
von Tengel
Code: Alles auswählen
def Spielablauf(tisch, stapel, spieler, spieler2):
if len(spieler) == 0:
print(self.spieler," hat Gewonnen!!!")
elif len(spieler2) == 0:
print(self.spieler," hat Gewonnen!!!")
else:
print(tisch,"\n")
print("Deine Hand")
x=1
for karte in spieler.hand:
print(x, karte)
x +=1
print("0: Ziehe Karte")
spieler.KarteSpielen(tisch, stapel)
ueberpruefe_karte(tisch, stapel, spieler, spieler2)
Spielablauf(tisch, stapel, spieler2, spieler1)
Es geht immer noch um ein Kartenspiel - diese Funktion ist für die einzelnen Spielzüge zuständig, ruft sich nach Durchlauf selbst auf und übergibt an den anderen Spieler.
Re: Ist das so zulässig
Verfasst: Mittwoch 29. Mai 2013, 19:43
von BlackJack
@Tengel: Das wird früher oder später in einem ``RuntimeError: maximum recursion depth exceeded`` enden. Wenn Du ganz einfach etwas wiederholen möchtest, dann verwende eine Schleife und keine Rekursion.
Also in etwa so:
Code: Alles auswählen
def spielablauf(tisch, stapel, spieler1, spieler2):
while True:
if not spieler1:
print(spieler1, ' hat Gewonnen!!!')
break
elif not spieler2:
print(spieler2, ' hat Gewonnen!!!')
break
else:
print(tisch, '\n')
print('Deine Hand')
for i, karte in enumerate(spieler1.hand, 1):
print(i, karte)
print('0: Ziehe Karte')
spieler1.spiele_karte(tisch, stapel)
ueberpruefe_karte(tisch, stapel, spieler1, spieler2)
spieler1, spieler2 = spieler2, spieler1