def hangman():
words = ("potato", "pumpkin", "winter", "left", "right", "up")
ra = (random.choice(words))
devided = (list(ra))
lifes = 4
lenght = (len(devided))
print ("The word has", lenght, "letters, try to guess it and the first letter is", devided[0])
answer = input("The word is: ")
if (answer == ra):
print ("Correct")
exit()
elif (answer != ra):
lifes -= 1
while (lifes != 0):
print ("Wrong, you have", lifes, "lifes left")
hangman()
hangman()
所以我做了一个游戏,你必须从单词变量中猜出单词,它非常简单,因为它告诉你生成的随机单词有多长,并且是单词的第一个字母。
现在我在制作一个系统时遇到了麻烦,当你猜错了这个词时,你的生命就减少了1个,它确实有效,一旦你猜错了它就会从生命变量中减去-1但是当它循环变量生命重置时回到生命= 4,它应该保持3,我如何保存,所以它不会改变?因此,每当我猜错字时,变量会继续向下移动1个数字,直到它达到0并且循环停止?
答案 0 :(得分:1)
你的代码有点搞砸了
简单的修复方法是使用
while (lifes != 0):
更改the
替换while
if
如果你坚持让它以递归方式运行,那么将生命作为参数传递
删除行lifes = 4
,而是将函数定义更改为:
def hangman(lifes=4):
(我把它留作生命,但英文单词是生命)
那么你需要改变的就是这部分
print ("Wrong, you have", lifes, "lifes left")
hangman()
入
print ("Wrong, you have", lifes, "lifes left")
hangman(lifes)