猿问

我在运行 Python 任务时遇到问题

规则如下:

挑战:

编写一个程序,从 1 到 100 中随机选择一个整数,然后让玩家猜测这个数字。规则是:

如果玩家的猜测小于 1 或大于 100,请说“OUT OF BOUNDS” 在玩家的第一个回合中,如果他们的猜测在数字的 10 以内,则返回“WARM!” 距离数字超过10,返回“COLD!” 在所有后续回合中,如果猜测比之前的猜测更接近数字,则返回“WARMER!” 比之前猜测的数字更远,返回“COLDER!” 当玩家的猜测等于数字时,告诉他们他们猜对了,并猜了多少次!


我尝试在没有指导的情况下仅使用我学到的基本工具来写这篇文章。迄今为止。这是我的代码(仍在处理中)


guess=randint(0,100)


## Guessing game ! 

# In this game, we will pick a random integer from the integers in the segment [0,100]. 

# In each step one should guess the integer that the system chose.

# Once you gussed correctly, you will win the game.


GuessList=[]


Guess=input('Your Guess is: ')

GuessList.append(Guess)


if int(Guess)<0 or int(Guess)>100:

    print('OUT OF BOUNDS')


else:

    if  int(Guess)==int(guess):

        print('Congragulations, you have earned your chicken for friday \n Game is over now.')

    else:

        if 0<int(guess)-int(Guess)<10:

            print('Warm')

        elif 0<int(Guess)-int(guess)<10:

            print('Warm')

        else:

            print('Cold')

        NewGuess=input('Your new guess is: ')

        

        

if int(NewGuess)==int(guess):

     print('Congragulations, you have earned your chicken for friday \n The game is over now')                


while int(NewGuess)!=int(guess):

    if int(NewGuess)<0 or int(NewGuess)>100:

        print('OUT OF BOUNDS')


我确信那非常糟糕。我的问题是:


首先,我知道我还没有完成任务中写的事情。我的代码不会告诉猜测者他是否更接近正确的数字与他先前的猜测有关,而是与第一个猜测有关。不要告诉我如何正确编写它,一旦我理解了更关键的问题,我就会弄清楚:


正如它所写的,无论我试图猜测什么,它都永远不会结束游戏(就好像 0-100 之间的所有数字)都是不正确的。


另外,当我运行它并尝试运行简单的代码时guess,它什么也不做(我正在木星笔记本中工作)。


但是,如果我不运行此代码,只是运行guess=randint(0,100)然后运行guess它确实会显示数字。


提前致谢。


慕的地8271018
浏览 71回答 1
1回答

RISEBY

我们来一一分析一下问题:您正在NewGuess与Guess( int(NewGuess)-int(Guess)) 进行比较,并且Guess是第一个猜测我看不出游戏没有结束的任何原因。只要您不输入任何超出范围的数字,游戏就会结束。游戏结束时没有任何打印语句,所以也许这就是您认为游戏没有结束的原因。同样,guess 应该是区间 [1, 100] 中的数字。也许您没有randint从random模块导入?
随时随地看视频慕课网APP

相关分类

Python
我要回答