我制作了这个刽子手游戏:
wordsList = ["Lampe", "Pflanze", "Bauernhof", "Katze", "Monster",
"Weihnachtsmann", "Recycling", "Gymnastik", "Metapher", "Zyklop", "YouTube",
"Playstation", "Artikel 13", "Kokosnuss", "Variable", "Naruto", "Musik",
"Wandtattoo", "Taschenrechner", "Sonnenblume", "Bilderrahmen", "Videospiel"]
#wordslist
while True:
x = random.randint(0,21) #Random number for choosing a word
word = []
print("your word: ", end='') #show length of the word
for y in wordsList[x]:
if y == " ":
print(" ", end='')
word.append(" ")
else:
print("_ ", end='')
word.append(0)
print("")
fails=0 #number of fails
rdy=0 #rdy=1 if word is guessed
while fails<=8:
hit=0 #if hit=1 a letter was guessed, else fail++
cnt=0
inp = input("Input: ")
for y in wordsList[x]:
if (inp == y or inp.upper() == y) and word[cnt]==0:
word[cnt]=y
hit=1
cnt+=1
if hit==0:
fails+=1
drawHangman(fails) #draw hangman
rdy=drawWord(word) #show guessed letters
if rdy==1: #if rdy=1, finished
print("")
print("Well done!!!")
break
if rdy==0: #if rdy=0 and not in while-loop, lost
print("")
print("Game Over!!!")
print("The word was: " + wordsList[x])
print("Again?") #asked if wanna play again, 1=yes 0=no
print("1: Yes")
print("0: No")
inp=input("Input: ")
if inp==0:
break
现在我遇到的问题是,当我问你是否想要再次播放而你输入0表示否时,while循环不会中断。有人看到了这个问题吗?我尝试使用变量作为while-loop-condition并将其设置为False,如果你想结束但结果相同。也许缩进有问题?
问题是输入不会将输入存储为整数。所以你最终会得到比较
if '0' == 0
您需要将0转换为字符串或输入整数
if int(inp)==0:
我会在第一时间包括条件:
inp = 0
while inp == 0:
your_code()
print("Again?") #asked if wanna play again, 1=yes 0=no
print("1: Yes")
print("0: No")
inp=int(input("Input: "))
正如其他人所说,input
返回一个字符串。
将输入解析为整数
if int(inp) == 0:
或者你可以比较'0'
if inp == '0':
你只需要改变if inp==0:
,if inp=="0":
或if inp=='0':
。您需要与字符0进行比较,而不是值0。