Néhány hete elkezdtem tanilni Python nyelven. Csináltam egy scriptet, a gondom az, hogy bár látszólag működik, ha sokszor próbálgatom, van, hogy nem írja ki a választ, csak bekéri az inputot újra, és nem jövök rá miért. Szerintetek?
import random
def kopapirollo():
return random.choice(["kő","papír","olló"])
valid_options=("kő","KŐ","Ko","KO","ko")
valid_options1=("Papír","PAPÍR","papír","papir")
valid_options2=("ollo","olló","Olló","Ollo","OLLÓ")
print('kő-papír-olló-kilépéshez írjba be: "kilép"')
while True:
valasz=input("Kő/Papír/Olló? ")
if valasz in valid_options:
kopapirollo()
if kopapirollo()=="papír":
print("Ön vesztett")
elif kopapirollo()=="kő":
print("Döntetlen")
elif kopapirollo()=="olló":
print("Ön nyert")
elif valasz in valid_options1:
kopapirollo()
if kopapirollo()=="papír":
print("döntetlen")
elif kopapirollo()=="kő":
print("Ön nyert")
elif kopapirollo()=="olló":
print("Ön vesztett")
elif valasz in valid_options2:
kopapirollo()
if kopapirollo()=="papír":
print("Ön nyert")
elif kopapirollo()=="kő":
print("Ön vesztett")
elif kopapirollo()=="olló":
print("Döntetlen")
import random
def kopapirollo():
return random.choice(["kő","papír","olló"])
valid_options=("kő","KŐ","Ko","KO","ko")
valid_options1=("Papír","PAPÍR","papír","papir")
valid_options2=("ollo","olló","Olló","Ollo","OLLÓ")
print('kő-papír-olló-kilépéshez írjba be: "kilép"')
while True:
valasz=input("Kő/Papír/Olló? ")
if valasz in valid_options:
kopapirollo()
if kopapirollo()=="papír":
print("Ön vesztett")
elif kopapirollo()=="kő":
print("Döntetlen")
elif kopapirollo()=="olló":
print("Ön nyert")
elif valasz in valid_options1:
kopapirollo()
if kopapirollo()=="papír":
print("döntetlen")
elif kopapirollo()=="kő":
print("Ön nyert")
elif kopapirollo()=="olló":
print("Ön vesztett")
elif valasz in valid_options2:
kopapirollo()
if kopapirollo()=="papír":
print("Ön nyert")
elif kopapirollo()=="kő":
print("Ön vesztett")
elif kopapirollo()=="olló":
print("Döntetlen")
Minden alkalommal hogy meghívod a kopapirollo() függvényt, az újat generál. Csak egyszer hívd meg 1 játékban, és tárold el az eredményt, majd azt használd fel.
jatekos = input("Kő/Papír/Olló? ")
ellenfel = kopapirollo()
if jatekos in ko_valasz:
. . if ellenfel == "papír":
. . . . print("Ön vesztett")
. . elif ellenfel == "kő":
. . . . print("Döntetlen")
...
...
elif jateekos in papir_valasz:
...
...
elif jatekos in ollo_valasz:
...
...
else:
. . print("Hibás bemenet!")
Talán az van, hogy nem kellene ennyiszer meghívnod a kopapirollo() függvényt, mert így minden if-nél más ereményt ad vissza. Így lehet, hogy egyik if sem teljesül.
Minden körben csak egyszer hívd meg az eredmény eltárolásával. És az eltárolt eredményt használd az ifeknél.
Ez a kod egyszeruen tragikus.... osszesen van 3 fele lehetseges kimenet (veszit/gyoz/dontetlen), es te kepes vagy 12 if statement-et leirni? :D
http://pastebin (pont) com/NkG27Uef
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!