我在一个简单的文字游戏中制作的生命系统遇到了麻烦

时间:2017-02-11 22:10:43

标签: python

    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并且循环停止?

1 个答案:

答案 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)