我在一个简单的文本游戏中制作的Life系统有问题

2024-06-02 11:12:04 发布

您现在位置: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,但是当它循环时,变量lifes重置为lifes=4,应该保持3,我如何保存它,使它不会改变?所以,每当我猜错单词时,变量会一直向下移动1个数字,直到到达0,循环停止


Tags: theanswerisdef单词leftwordpotato
1条回答
网友
1楼 · 发布于 2024-06-02 11:12:04

你的代码有点乱 简单的解决方法是将 while (lifes != 0):替换为the{}为if 如果您坚持让它以递归方式运行,请将life作为参数传递

删除lifes = 4行,改为将函数定义更改为: def hangman(lifes=4):(我把它留作lifes,但英文单词是lifes) 那么你所需要改变的就是这个部分 print ("Wrong, you have", lifes, "lifes left") hangman() 进入 print ("Wrong, you have", lifes, "lifes left") hangman(lifes)

相关问题 更多 >