猜字母A-Z

Guessing a letter A-Z

所以,这是任务。无法解决,求助。

check_guess() 接受 2 个字符串参数:字母和猜测(都需要单个字母字符) - 如果猜测不是字母字符打印无效和 return False - 如果猜测是 "high" 或 "low" 和 return 则测试并打印 False - 如果猜测是 [ 则测试并打印=25=] 和 return 真

字母猜

创建 letter_guess() 给用户 3 次猜测的函数

采用字母字符参数作为答复字母 获取字母猜测的用户输入 调用 check_guess() 并给出答案和猜测 结束 letter_guess 如果 check_guess() 等于真,return 真 或 3 次尝试失败后,return False

首先我无法解决 3 次尝试。第二个问题是,当我为 ex.

输入数字时,我不能出错
letter = "J"
tries = 3

guess = input ("Enter your guess ")


def check_guess (guess, letter):


if letter == guess.upper():
    print ("correct")
    True
    return 

elif letter < guess.upper():
    print ("You are wrong, but go closer to A")
    False
    return 
elif letter > guess.upper():
    print ("You are wrong, but go closer to Z")
    False
    return 

def letter_guess (guess, letter, tries):
if check_guess (guess, letter) == True:
    pass
elif check_guess (guess, letter) == False:
    tries - 1
    return

if tries == 0:
print ("GAME OVER!")
else:
check_guess (guess, letter)

您没有使用 letter_guess 函数,也没有从 check_guess 函数返回结果(None 除外)。
试试这个:

letter = "J"
tries = 3

def check_guess (guess, letter):
    if not guess.isalpha():
        print("Invalid")
        return False
    if letter == guess.upper():
        return True
    elif letter < guess.upper():
        print ("Your guess is High")
        return False
    else:
        print ("Your guess is Low")
        return False

def letter_guess():
    for i in range(tries):
        guess = input ("Enter your guess ")
        res = check_guess (guess, letter)
        if res:
            print ("Correct!")
            return True
    return False

result = letter_guess()
if result:
    print ("Congratulations")
else:
    print ("The answer was ",letter)
print ("GAME OVER!")

您可以通过删除 letter_guess 函数并将所有游戏逻辑压缩到一个函数中来简化您的代码。

然后为了解决尝试 3 次的问题,我做了一个 while 循环,循环直到尝试 == 0。当循环遇到猜测错误的语句时,它会减去一次尝试。

我还得搬

guess = input ("Enter your guess ")

进入 while 循环,这样它将迭代多次并为三个不同的尝试获取输入。

correctLetter = "J"

def check_guess (letter):

    tries = 3

    while tries > 0:

        guess = input ("Enter your guess ")

        if letter == guess.upper():                
            print ("Correct!")
            break

        elif letter < guess.upper():
            if tries > 1:
                print ("You are wrong, but go closer to A")
            tries = tries - 1    #Moves you closer to finishing the loop

        elif letter > guess.upper():
            if tries > 1:
                print ("You are wrong, but go closer to Z")  
            tries = tries - 1  #Moves you closer to finishing the loop

    if tries == 0:
        print ("GAME OVER!")

check_guess(correctLetter)

旁注:对于 return 函数中的任何值,该值需要直接跟在 return 语句之后,如下所示:

return True

希望对您有所帮助!

这完成了同样的事情,但使用了两个不同的函数。

correctLetter = "J"
tries = 3

def letter_game(tries, correctLetter):
    for i in range(tries):

        guess = input ("Enter your guess ")

        if letter_check(correctLetter, guess) == True:
            print("Correct!")
            break
    if letter_check(correctLetter, guess) != True:
        print("Game Over!")

def letter_check(l1, l2):
    if l1 == l2.upper():
        return True    
    elif l1 > l2.upper():
        print ("You are wrong, but go closer to Z")
        return False
    elif l1 < l2.upper():
        print ("You are wrong, but go closer to A")
        return False
    else:
        return False

letter_game(tries, correctLetter)

函数letter_game运行游戏,letter_check函数returns一个布尔值,对应猜中的字母是否匹配正确的字母。