我开始做一个数字猜谜游戏。下面是我写的代码:
import random
print('Hello what is your name?')
NamePlayer = input()
print('Well, ' + NamePlayer + ' I am thinking of a number between 1 and 20')
randomnumber = random.randint(1, 20)
print('Take a guess.')
for Guesstaken in range(1, 7):
Guess = int(input())
if Guess < randomnumber:
print('Too low, take another guess!')
elif Guess > randomnumber:
print('Too high, take another guess!')
else:
break
if Guess == randomnumber:
print('Damnn are you a mindreader, ' + NamePlayer)
else:
print('You are wrong')
问题是对于最后一次迭代,我得到了for
循环内部满足的条件的print,以及循环外部的print。当然,如果这是最后一次猜测,我不想得到'Too high,take another guess'或类似的结果。
我怎么能在最后一次迭代中只打印“该死的,你是一个读心者吗?”或者“你错了”?
4条答案
按热度按时间dffbzjpn1#
你可以把猜测的次数存储在一个变量中,比如N。
nnsrf1az2#
这将是更好的,如果你有一行打印游戏规则,我不知道有多少尝试,你想给予。你的程序计数从1 ...... 6,它只是6步,所以我让它循环7次,因为这
olhwl3o23#
这里c是一个计数器,用来查看是否达到了number_of_trials。2如果是最后一次猜测,它将有助于不显示“太高,再猜一次”或类似的信息。
vcudknz34#
代码中的主循环将被重复 while 将有另一个猜测。
您还希望只在有另一个猜测将要发生时打印出“太高”或“太低”消息。
另一种方法是测试正确答案或猜测次数过多,并在打印这些消息之前更改
another_guess
的状态。例如:
如果你有野心把这个游戏,并添加图形用户界面,它可能是有益的分离出用户界面,游戏状态,游戏逻辑.