Ich habe gestern dieses typische Streichholzspiel in Python umgesetzt..
Es liegen 21 Streichhölzer auf dem Tisch.. spieler 1 und spieler 2 nehmen abwechslend eins, zwei oder drei Strechhölzer vom Stapel. Wer das letze nimmt hat verloren.
Für alle die ein wenig Gehirn haben und sich an die Anleitung, sprich: maximal drei Steichhölzer vom Staple zu nehmen, halten, für die funktioniert das Spiel, aber wenn nun jemand mehr als 3 Streichhölzer zum Abzug eingibt, dann zieht er eben auch die Höhere Anzahl ab.
Wie könnte ich das machen dass das Programm in einem solchen Falle dann den Spieler auffordert erneut eine Zahl im Raum von 1-3 einzugeben?
Quelltext:
Code: Alles auswählen
print "Dies ist ein Streichholzwegnehmspiel."
print "Das Spiel ist auf zwei Spieler ausgelegt und funktioniert so:"
print "Hier liegen 21 Streichhölzer."
print "Jeder von euch nimmt nun abwechselnd 1, 2 oder 3 Hölzer"
print "von dem Stapel. Wer den lezten Stab bekommt hat verloren."
spieler1name = raw_input("Wie heißt du, Spieler 1? ")
spieler2name = raw_input("Wie heißt du, Spieler 2? ")
names = [spieler1name, spieler2name]
for name in names:
print "Okay, " +name
print "Das Spiel beginnt nun."
ergebnis=21
verlierer=1
while ergebnis>1:
wegnahme1 = int(raw_input("Wie viele Streichhölzer nimmst du weg, " +spieler1name+ "? "))
print "Jetzt bist du dran, " +spieler2name+ "!"
print "Es sind noch ", ergebnis - wegnahme1, "Hölzer über."
ergebnis -= wegnahme1
if ergebnis==1:
verlierer=2
break
wegnahme2 = int(raw_input("Wie viele nimmst du weg? "))
print "Nun sind noch ", ergebnis - wegnahme2 , "Hölzer über."
ergebnis -= wegnahme2
print "Nun bist wieder du dran, " + spieler1name
if verlierer==2:
print "Herzlichen Glückwunsch, "+spieler1name+"!"
else:
print "Herzlichen Glückwunsch, "+spieler2name+"!"
print "Du hast gewonnen.--->SPIELENDE"
Greetz Leo
PS: Ich hoffe es ist nicht zu komisch geschrieben Für Kritik bin ich jederzeit offen..
