您的程序通过在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()
答案 0 :(得分:4)
采取这一行:
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()
现在,每次调用函数时都会创建一个新的随机整数。
答案 1 :(得分:1)
在main()
中加一个循环,并在循环开始时初始化randomNumber
。
答案 2 :(得分:1)
请尝试删除从随机开始到启动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&lt; = 6: 打印&#34;输入您认为的数字&#34; inputnum的raw_input =() 如果inputnum == str(num1): 打印&#34;恭喜你猜错了#34; 破
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
答案 3 :(得分:0)
你只需要像这样定义你的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)
一切都会很完美。希望这会有所帮助。