【发布时间】:2019-07-24 00:17:39
【问题描述】:
这里是 Python(3.7) 初学者。这个猜谜游戏给出了范围线索:
ColdWarmHot
取决于回答玩家的距离。
问题:如何添加额外的3条增量线索:
-
Colder -
Warmer -
HotterColder用于下一个猜测距离答案较远。Warmer用于下一个猜测更接近答案。Hotter用于代替Warmer如果它在Hot范围。
第一次猜测会产生范围线索Cold、Warm 或Hot。
随后的猜测将产生增量线索Colder 或Warmer/Hotter if,而它们落在与先前猜测相同的范围内。
如果超出范围,将首先产生范围线索Cold、Warm或Hot,然后然后产生Colder或Warmer/Hotter而在那个范围内。换句话说,Cold、Warm 或 Hot 范围线索的优先级高于增量 Colder 或 Warmer/Hotter。
print("The secret number is somewhere between 0 and 100. You have 5 guesses.")
user_input = int(input('Make a guess '))
count = 0
while user_input is not 41 and count < 4:
count = count + 1
how_close_to_answer = 41 - user_input
if 5 < how_close_to_answer.__abs__() < 20:
user_input = int(input(f'Warm. Remaining guesses {5 - count} '))
elif how_close_to_answer.__abs__() >= 20:
user_input = int(input(f'Cold. Remaining guesses {5 - count} '))
else:
user_input = int(input(f'Hot. Remaining guesses {5 - count} '))
if user_input is not 41:
print('You Lose!')
else:
print('You Win!')
print(f"It took you {count + 1} guesses to get this correct.")
例如(在无限猜测n的情况下):
- 玩家猜测 = 10,期望结果'
Cold。剩余猜测(n-1)' - 下一个猜测 = 15,期望的结果 '
Warmer。剩余猜测(n-2)' - 下一个猜测 = 12,期望结果 '
Colder。剩余的猜测(n-3)' - 下一个猜测 = 36,期望的结果 '
Hot。剩余猜测(n-4)' - 下一个猜测 = 37,期望的结果 '
Hotter。剩余猜测(n-5)' - 下一个猜测 = 30 ,期望的结果 '
Warm。剩余猜测(n-6)'
在 4. 示例中 - 数字 36 是 Warmer,而不是之前的 12,但它也在 Hot 范围内,因此给出了 Hot 线索。
在 6. 示例中 - 数字 30 是 Colder,而不是之前的 37,但它也在 Warm 范围内,因此给出了 Warm 线索。
【问题讨论】:
-
首先要确定您希望这些额外线索如何工作。如果我不得不猜测你想要在你的第一个猜测之后的所有猜测说
warmer、colder或HOT。如果玩家猜到了HOT猜测,然后在HOT范围内得到下一个猜测,您的代码应该再次显示HOT还是warmer/colder之一? -
添加到@Hoog 建议,您可能希望根据他们的猜测是接近还是远离答案。即然后猜测 35,然后 40,“温暖”,然后 38,“更冷”。这样一来,即使他们在同一个乐队中,如果他们从 10 到 15,他们也会变得“温暖”。然后,您可能希望这样做,如果它们在答案的 10% 以内,则表示“热”。
-
如果猜测落在“冷”范围内,它会首先说“冷”和“暖”/“冷”,而它仍处于“冷”范围。 “温暖”范围也是如此。对于 'Hot' 范围相同,除了 'Hotter'/'Colder' 而不是 'Warmer'/'Colder' 。即 20 ->“冷”,然后 21 ->“暖”,然后 25 ->“暖”,然后 24 ->“冷”,然后 44 ->“热”,然后 43 ->“更热”,然后 45 -> '冷',然后 15 -> '冷'。基本上,范围的名称将首先声明,然后在该范围内进行相对进展。
标签: python