Witajcie. Niedawno zacząłem naukę, i niestety wykładam się na jednym z pierwszych zadań. Zrobiłem grę papier kamień nożyce, działało do czasu dodania pętli while.Tak wygląda cały kod:
wynik_gracz1 = 0
wynik_gracz2 = 0
opcje_gracza = ["kamien", "papier", "nozyczki"]
while wynik_gracz1 != 3 and wynik_gracz2 != 3:
wybor_gracza_jest_poprawny = True
while wybor_gracza_jest_poprawny:
wybor_gracza1 = input("gracz1 podaj swoj wybor: ")
if wybor_gracza1 in opcje_gracza:
wybor_gracza_jest_poprawny = False
while wybor_gracza_jest_poprawny:
wybor_gracza2 = input("gracz2 podaj swoj wybor: ")
if wybor_gracza2 in opcje_gracza:
wybor_gracza_jest_poprawny = False
if wybor_gracza1 == "kamien" and wybor_gracza2 == "nozyczki" \
or wybor_gracza1 == "papier" and wybor_gracza2 == "kamien" \
or wybor_gracza1 == "nozyczki" and wybor_gracza2 == "papier":
print("gracz1 wygral")
wynik_gracz1 += 1
elif wybor_gracza1 == wybor_gracza2:
print("remis")
else:
print("gracz2 wygral")
wynik_gracz2 += 1
if wynik_gracz1 > wynik_gracz2:
print("Cala gre wygral gracz 1")
else:
print("Cala gre wygral gracz 2")
Problem polega na tym że przed dodaniem pętli while sprawdzającej zgodność tego co wpiszę z listą funkcja input działała mi normalnie, zapisywało zmienną. W tym momencie w linii 17 dostaję
NameError: name 'wybor_gracza2' is not defined. Did you mean: 'wybor_gracza1'?
Odrzuca mi gdy wpiszę cokolwiek spoza listy, ale gdy wpiszę rzecz z listy automatycznie wyrzuca mi ten błąd.
Rozumiem że problem jest ze zmienną, ale nie rozumiem dlaczego
cegła
zamiastkamień
to...? :P