fix another finish bug in myrummy
This commit is contained in:
+4
-5
@@ -25,7 +25,7 @@ Befehle:
|
|||||||
n neue leere Gruppe
|
n neue leere Gruppe
|
||||||
a G1 G2 Gruppen verbinden
|
a G1 G2 Gruppen verbinden
|
||||||
s G POS Gruppe nach POS teilen
|
s G POS Gruppe nach POS teilen
|
||||||
d Karte ziehen
|
d Karte ziehen (beendet den Zug)
|
||||||
u letzte Änderung rückgängig
|
u letzte Änderung rückgängig
|
||||||
sort Hand sortieren
|
sort Hand sortieren
|
||||||
finish Zug prüfen/beenden
|
finish Zug prüfen/beenden
|
||||||
@@ -42,10 +42,9 @@ Regeln der Implementierung:
|
|||||||
- Wer keine Handkarten mehr hat, gewinnt
|
- Wer keine Handkarten mehr hat, gewinnt
|
||||||
- Zug = legen ODER ziehen, nie beides:
|
- Zug = legen ODER ziehen, nie beides:
|
||||||
- Wer gelegt hat, darf nicht mehr ziehen
|
- Wer gelegt hat, darf nicht mehr ziehen
|
||||||
- Wer gezogen hat, darf nicht mehr legen und beendet den Zug mit finish
|
- Wer zieht, beendet damit automatisch seinen Zug (kein finish nötig),
|
||||||
- Nach dem Ziehen ist finish auch ohne 30 Punkte erlaubt (man darf passen,
|
auch ohne 30 Punkte - so kann man passen, bis man eröffnen kann
|
||||||
solange man noch nicht eröffnet hat)
|
- Leerer Tisch + nichts getan: finish verlangt, dass man legt oder zieht
|
||||||
- Leerer Tisch + nicht gezogen: finish verlangt, dass man legt oder zieht
|
|
||||||
|
|
||||||
Hinweis: Das ist eine bewusst einfache CLI-Version. Die Regeln für Sonderfälle
|
Hinweis: Das ist eine bewusst einfache CLI-Version. Die Regeln für Sonderfälle
|
||||||
wie Joker-Rücknahme, 1-13-Runden, Punktwertung nach Spielende usw. können später
|
wie Joker-Rücknahme, 1-13-Runden, Punktwertung nach Spielende usw. können später
|
||||||
|
|||||||
+5
-4
@@ -71,7 +71,7 @@ class Game:
|
|||||||
print(' n leere neue Gruppe')
|
print(' n leere neue Gruppe')
|
||||||
print(' a G1 G2 Gruppen verbinden')
|
print(' a G1 G2 Gruppen verbinden')
|
||||||
print(' s G POS Gruppe nach POS teilen')
|
print(' s G POS Gruppe nach POS teilen')
|
||||||
print(' d ziehen')
|
print(' d ziehen (beendet den Zug)')
|
||||||
print(' u undo')
|
print(' u undo')
|
||||||
print(' sort Hand sortieren')
|
print(' sort Hand sortieren')
|
||||||
print(' finish Zug prüfen/beenden')
|
print(' finish Zug prüfen/beenden')
|
||||||
@@ -83,7 +83,6 @@ class Game:
|
|||||||
return n-1
|
return n-1
|
||||||
|
|
||||||
def move_hand(self,h,g):
|
def move_hand(self,h,g):
|
||||||
if self.drew: raise ValueError('Du hast bereits gezogen - damit ist dein Zug beendet.')
|
|
||||||
hi=self.idx(h,len(self.p.hand)); self.save()
|
hi=self.idx(h,len(self.p.hand)); self.save()
|
||||||
card=self.p.hand.pop(hi)
|
card=self.p.hand.pop(hi)
|
||||||
if g.lower()=='new': self.table.append([card])
|
if g.lower()=='new': self.table.append([card])
|
||||||
@@ -108,9 +107,11 @@ class Game:
|
|||||||
|
|
||||||
def draw(self):
|
def draw(self):
|
||||||
if self.melded: raise ValueError('Du hast bereits Karten gelegt - ziehen ist dann nicht mehr erlaubt.')
|
if self.melded: raise ValueError('Du hast bereits Karten gelegt - ziehen ist dann nicht mehr erlaubt.')
|
||||||
if self.drew: raise ValueError('Du hast bereits gezogen.')
|
|
||||||
if not self.deck: raise ValueError('Stapel leer.')
|
if not self.deck: raise ValueError('Stapel leer.')
|
||||||
self.save(); self.p.hand.append(self.deck.pop()); self.p.hand=sort_hand(self.p.hand); self.drew=True
|
card=self.deck.pop(); self.p.hand.append(card); self.p.hand=sort_hand(self.p.hand)
|
||||||
|
print(f'\n {self.p.name} zieht {card.text()} und beendet damit den Zug.')
|
||||||
|
self.turn=1-self.turn; self.drew=False; self.melded=False; self.history=[]
|
||||||
|
self.handover=True
|
||||||
|
|
||||||
def finish(self):
|
def finish(self):
|
||||||
if any(not g or not valid(g, self.wrap) for g in self.table):
|
if any(not g or not valid(g, self.wrap) for g in self.table):
|
||||||
|
|||||||
Reference in New Issue
Block a user