3 svar
179 visningar
Lukas17 är nöjd med hjälpen
Lukas17 4
Postad: 13 mar 2022 19:56

Spela igen funktion fungerar inte

Jag ska skapa ett spel som kallas 21an.  Spelet går ut på att två personer  turas om med att välja mellan siffrorna 1 och 2, detta värde läggs till i en gemensam pott. Den spelare som når 21 vinner! Man ska även få spela igen, men det fungerar inte. Såhär ser hela min kod ut:

print("Väkommen till 21an! Spelet går ut på att du och en annan turas om med att välja mellan siffrorna 1 och 2 detta värde läggs till i en gemensam pott. Den spelare som når 21 vinner!")
play_again = str("ja")
talsumma = 0
spelare = True
Avinster = 0
Aförluster = 0
Bvinster = 0
Bförluster = 0

while play_again == "ja" :

while talsumma < 21:

while spelare == True:
a = int(input("Spelare A: Vänligen skriv in 1 eller 2:"))

if a < 1 or a > 2:
a = int(input("Du måste skriva in 1 eller 2, försök igen:"))
else:
talsumma += a
print("Talsumman är nu " + str(talsumma))
spelare = False

while talsumma < 21 and spelare == False:
b = int(input("Spelare B: Vänligen skriv in 1 eller 2:"))

if b < 1 or b > 2: #Fixa så att man inte heller får skriva en bokstäver--------------------------------------------------------------------------
b = int(input("Du måste skriva in 1 eller 2, försök igen:"))
else:
talsumma += b
print("Talsumman är nu " + str(talsumma))
spelare = True

if talsumma == 21 and spelare == False:
print("Grattis spelare A, du vann!")
Avinster +=1
Bförluster += 1
elif talsumma == 21 and spelare == True:
print("Grattis spelare B, du vann!")
Bvinster += 1
Aförluster += 1
play_again = input('Vill du spela igen? ja/nej ')
if(play_again == "nej"): #fixa så att man faktiskt får spela igen om man svarar ja
break

-----------------------(Slut på koden)----------------------

När jag svarar nej på play again fungerar det som det ska, men när jag svarar ja säger koden bara "Grattis spelare A/B, du vann! och frågar igen.

Laguna Online 28513
Postad: 13 mar 2022 21:51

Har ni lärt er om try/catch?

Lukas17 4
Postad: 13 mar 2022 22:12
Laguna skrev:

Har ni lärt er om try/catch?

Nej, inte än är hittils ganska ny till programmering. Detta är min andra uppgift :)

Laguna Online 28513
Postad: 13 mar 2022 22:46

I stället för att göra om det inlästa till ett tal direkt med int() kan du först kolla om det är antingen strängen "1" eller "2" och förkasta allt annat.

Sen kan du göra det till ett tal med int() så det går att göra aritmetik med det.


Tillägg: 13 mar 2022 22:50

Jag märker att jag svarade på frågan du ställde i din andra tråd, inte i den som du ställde här. Jag blsndade ihop trådarna.

Svara Avbryt
Close