繁体   English   中英

Python 随机数猜谜游戏

[英]Python random number guessing game

    I'm having issues with this random number guessing game. There are 2 issues: The first issue has to do with the counting of how many tries you have left. it should give you 3 changes but after the 2nd one it goes into my replay_input section where I am asking the user if they want to play again. 
        import random
        # guess the # game
        guess = input("Enter in your numerical guess. ")
        random_number = random.randint(0, 10)
        print(random_number)            # used to display the # drawn to check if code works
        number_of_guess_left = 3
        # this is the main loop where the user gets 3 chances to guess the correct number 
    
        while number_of_guess_left > 0:
            if guess != random_number:
                number_of_guess_left -= 1
                print(f"The number {guess} was an incorrect guess. and you have {number_of_guess_left} guesses left ")
                guess = input("Enter in your numerical guess. ")
            elif number_of_guess_left == 0:
                print("You lose! You have no more chances left.")
            else:
                print("You Win! ")
            break

第二部分与重播输入有关,我似乎无法让它循环回到开头重新开始游戏。

        replay_input = input("Yes or No ").lower()
        if replay_input == "yes":
            guess = input("Enter in your numerical guess. ")

在此处发布问题之前,请先关注基础知识。 尝试使用https://thonny.org/等工具进行调试。 但是,我更新了您的代码,请检查。

import random
# guess the # game
random_number = random.randint(0, 10)
print(random_number) 
# don't forget to convert to int       
guess = int(input("Enter in your numerical guess. "))
number_of_guess_left = 3
# this is the main loop where the user gets 3 chances to guess the correct number 

while number_of_guess_left > 0:
    number_of_guess_left -= 1
    if guess == random_number:
      print("You Win! ")
      break
    else:
      if number_of_guess_left == 0:
          print("You lose! You have no more chances left.")
          break
      else:
          print(f"The number {guess} was an incorrect guess. and you have {number_of_guess_left} guesses left ")
          guess = int(input("Enter in your numerical guess. "))

break语句退出while循环 循环中的代码执行一次,最后遇到break ,然后继续执行循环后的代码。

您可以通过将游戏包装在一个我在下面称为play_game的函数中让玩家重玩游戏。 最后的while True循环(在play_game之外)将循环直到遇到break语句。 玩家每循环玩一次游戏。 当他们在重播提示符处输入“yes”以外的任何内容时,循环将停止,这将使其命中break语句。

import random

def play_game():
    # guess the # game
    guess = input("Enter in your numerical guess. ")
    random_number = random.randint(0, 10)
    print(random_number)            # used to display the # drawn to check if code works
    number_of_guess_left = 3
    # this is the main loop where the user gets 3 chances to guess the correct number 

    while number_of_guess_left > 0:
        if guess != random_number:
            number_of_guess_left -= 1
            print(f"The number {guess} was an incorrect guess. and you have {number_of_guess_left} guesses left ")
            guess = input("Enter in your numerical guess. ")
        elif number_of_guess_left == 0:
            print("You lose! You have no more chances left.")
        else:
            print("You Win! ")


while True:
    play_game()
    replay_input = input("Yes or No ").lower()
    if replay_input != "yes":
        break

这是工作,但它是一个简单的代码:

import random

number_of_guess_left = 3
rand_counter = 0;

while number_of_guess_left > 0:
    if (rand_counter == 0):
        random_number = random.randint(0, 10)
        print(f"rand no:  {random_number} dd")
    guess = int(input("Enter in your numerical guess : "))
    if guess != random_number:
        number_of_guess_left -= 1
        if number_of_guess_left != 0:
            print(f"The number {guess} was an incorrect guess. and you have {number_of_guess_left} guesses left ")
            rand_counter += 1;
            continue;
        else:
            print("You lose! You have no more chances left, Do you want to play again? ")
            is_play_again = input(" Y or N :")
            if is_play_again.__eq__("y"):
                rand_counter = 0;
                number_of_guess_left = 3;
                continue
            elif is_play_again.__eq__("n"):
                print("Game Over");
                break;
    elif random_number == guess:
        print("You Win! ")
    break

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM