繁体   English   中英

Python:猜数字游戏

[英]Python: Number Guessing Game

您的程序通过随机选择一个介于1到1000(含)之间的整数来选择要猜测的数字。 如果玩家的猜测不正确,则您的程序应循环播放,直到玩家最终正确地获得数字为止。 您的程序应不断告诉播放器过高或过低,以帮助播放器“零插入”正确答案。 游戏结束后,程序应提示用户输入“ y”以再次玩游戏或输入“ n”退出游戏。

我的问题是,每次他们想再次玩耍时,如何生成一个新的随机整数?

这是我的代码。

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()

采取这一行:

randomNumber = random.randrange(1, 1000)

并将其放在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()

现在,每次调用函数都会创建一个新的随机整数。

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

请尝试从随机到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

而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

您只需要像这样定义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)

一切都会完美。 希望这可以帮助。

暂无
暂无

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

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