简体   繁体   English

Python:猜数字游戏

[英]Python: Number Guessing Game

Your program chooses the number to be guessed by selecting an integer at random in the range 1 to 1000 (inclusive). 您的程序通过随机选择一个介于1到1000(含)之间的整数来选择要猜测的数字。 If the player's guess is incorrect, your program should loop until the player finally gets the number right. 如果玩家的猜测不正确,则您的程序应循环播放,直到玩家最终正确地获得数字为止。 Your program should keep telling the player Too high or Too low to help the player “zero in” on the correct answer. 您的程序应不断告诉播放器过高或过低,以帮助播放器“零插入”正确答案。 After a game ends, the program should prompt the user to enter "y" to play again or "n" to exit the game. 游戏结束后,程序应提示用户输入“ y”以再次玩游戏或输入“ n”退出游戏。

My problem is how do you generate a new random integer each time they want to play again? 我的问题是,每次他们想再次玩耍时,如何生成一个新的随机整数?

Here's my code. 这是我的代码。

import random

randomNumber = random.randrange(1, 1000)

def main():
    print ""
    number = input("I have a number between 1 and 1000. Can you guess my number? Please type your first guess: ")
    guess(number)

def guess(number1):
    correct = False
    while not correct:
        if number1 > randomNumber:
            print "Too high. Try again."
            print ""
        elif number1 < randomNumber:
            print "Too low. Try again."
            print ""
        elif number1 == randomNumber:
           break
        number1 = input ("What number do you guess? ")
    if number1 == randomNumber:
       playAagain = raw_input ("Excellent! You guessed the number! Would you like to play again (y or n)? ")
       if playAagain == "y":
            main()

main()

Take this line: 采取这一行:

randomNumber = random.randrange(1, 1000)

and place it inside guess : 并将其放在guess

import random

def main():
    print ""
    number = input("I have a number between 1 and 1000. Can you guess my number? Please type your first guess: ")
    guess(number)

def guess(number1):
    #########################################
    randomNumber = random.randrange(1, 1000)
    #########################################
    correct = False
    while not correct:
        if number1 > randomNumber:
            print "Too high. Try again."
            print ""
        elif number1 < randomNumber:
            print "Too low. Try again."
            print ""
        elif number1 == randomNumber:
           break
        number1 = input ("What number do you guess? ")
    if number1 == randomNumber:
       playAagain = raw_input ("Excellent! You guessed the number! Would you like to play again (y or n)? ")
       if playAagain == "y":
            main()

main()

Now, a new random integer will be created each time the function is called. 现在,每次调用函数都会创建一个新的随机整数。

main()放入一个循环,并在循环开始时初始化randomNumber

please try this remove four spaces starting from random to starting of while loop 请尝试从随机到while循环的开头删除四个空格

import random

print " welcome to game of guessing "
print "you have 6 attempts"
num1 = random.randint(1,100)
print num1  # this is your computer generated number ( skip while running :only for test purpose)
num2 = num1+random.randint(1,15)
print " hint: number is close to " + str(num2)

count=1

while count<=6: print " enter the number you think" inputnum=raw_input() if inputnum==str(num1): print "congrats you guess the correct number" break 而count <= 6:打印“输入您认为的数字” inputnum = raw_input()如果inputnum == str(num1):打印“恭喜您猜到正确的数字”

elif inputnum<str(num1):
    print " number is lower than correct one "
    count=count+1
elif inputnum>str(num1):
    print "number is greater than correct one"
    count=count+1
else:
    break

You just have to define your main() function like this. 您只需要像这样定义main()函数。

def main():

    global randomNumber
    print ""
    randomNumber = random.randrange(1, 1000)
    number = input("I have a number between 1 and 1000. Can you guess my number? Please type your first guess: ")
    guess(number)

And everything will be perfect. 一切都会完美。 Hope this helps. 希望这可以帮助。

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

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