Python 试图做一个刽子手游戏。Can';t使我的playerLives变量正确减少

Python 试图做一个刽子手游戏。Can';t使我的playerLives变量正确减少,python,Python,我想做一个刽子手游戏。到目前为止,当它在秘密单词中循环并返回结果时,我已经让它非常有效地工作了。每次提交不正确的答案时,我的playerLives变量都会正确地递减,但是当我试图整理代码时,它已经停止工作,我无法让它在我的一生中降低值 def checkSecretWord(secretWord, guess, playerLives): letterConfirm = False letterDeny = False for i in range(0, len(secretWord)):

我想做一个刽子手游戏。到目前为止,当它在秘密单词中循环并返回结果时,我已经让它非常有效地工作了。每次提交不正确的答案时,我的playerLives变量都会正确地递减,但是当我试图整理代码时,它已经停止工作,我无法让它在我的一生中降低值

def checkSecretWord(secretWord, guess, playerLives):
letterConfirm = False
letterDeny = False
for i in range(0, len(secretWord)):

    if secretWord[i] == guess:
        letterConfirm = True

    if guess not in secretWord:
        letterDeny = True


if letterConfirm:
    print("Correct Guess!")

if letterDeny:
    print("Incorrect Guess! Try again!")
    playerLives -= 1
    return playerLives




def gameRunning():
    gameActive = True
    secretWord = getSecretWord()
    guessed_letters = []
    playerLives = 6
    while gameActive:
        makeBoard(playerLives, secretWord, guessed_letters)
        guess = checkLetter(guessed_letters)
        checkSecretWord(secretWord, guess, playerLives)
        print("You have {} lives reminaing".format(playerLives))
函数的作用是:在密码中搜索用户输入的字母(“猜测”)。当letterConfirm为true时(也就是说,字母与机密单词中的字母不匹配),它会正确地返回“猜错了!再试一次!”,但它似乎不会像我希望的那样将变量“playerLives”的值减少1

编辑:只是为了遮掩自己的后背——我知道“return playerLives==playerLives-1”毫无意义,而且写得很好,但这是我求助之前最后一次绝望的尝试


编辑2:谢谢大家的帮助。问题分类和经验教训。干杯。

这里有一些问题

您的第一个函数为空。让我们来解决这个问题

def checkSecretWord(secretWord, guess, playerLives):
    letterConfirm = False
    letterDeny = False
    for i in range(0, len(secretWord)):

        if secretWord[i] == guess:
            letterConfirm = True

        if guess not in secretWord:
            letterDeny = True


    if letterConfirm:
        print("Correct Guess!")
        return playerLives  #THIS IS THE BIG CHANGE

    if letterDeny:
        print("Incorrect Guess! Try again!")
        return playerLives - 1 #THIS IS THE BIG CHANGE
你把playerlives当作一个全局变量,你需要重写它,这样我们才能正确地增加playerlives

def gameRunning():
    gameActive = True
    secretWord = getSecretWord()
    guessed_letters = []
    playerLives = 6
    while gameActive:
        makeBoard(playerLives, secretWord, guessed_letters)
        guess = checkLetter(guessed_letters)
        playerLives = checkSecretWord(secretWord, guess, playerLives) # see "the big changes" I made earlier
        print("You have {} lives reminaing".format(playerLives))

返回playerLives==playerLives-1
????那一事无成。您需要
playerLives=playerLives-1;return
您正在执行的
=
检查是否相等,但不赋值。请执行
playerLives=playerLives-1
或简单地执行
playerLives-=1
谢谢您的快速回复-请参阅我对该段代码的编辑。我已经尝试了您建议的两种方法,但似乎都不起作用。还要存储由
checkSecretWord
返回的值。否则它将丢失。执行,
playerLives=checkSecretWord(secretWord,guess,playerLives)
您也可以从
checkSecretWord()
返回
True
False
,并根据
gameRunning()
中的返回值执行递减操作,非常感谢。工作得很好。很高兴它能工作;请记得投赞成票,接受我的回答