题目
你要根据线索猜出一个三位数。游戏会根据你的猜测给出以下提示之一:如果你猜对一位数字但数字位置不对,则会提示“Pico”;如果你同时猜对了一位数字及其位置,则会提示“Fermi”;如果你猜测的数字及其位置都不对,则会提示“Bagels”。你有10次猜数字机会
花十分钟,来实现一下吧! 输出结果如下:
请勿偷看答案哟!
为了用Python实现这个猜数字游戏,我们可以遵循以下步骤:
- 随机生成一个三位数(例如100到999之间)。
- 允许用户进行最多10次猜测。
- 根据用户的猜测,使用“Pico”,“Fermi”,“Bagels”作为反馈。
- 如果用户在10次以内猜中数字,则宣布胜利。
下面是实现这个游戏的Python代码:
import random
def guess_number_game():
target_number = random.randint(100, 999) # 生成目标数字
guesses_left = 10 # 初始化猜测次数
guess = None
print("欢迎来到猜数字游戏!")
print("我已经想好了一个100到999之间的数字。")
print("你有10次机会来猜这个数字。")
while guesses_left > 0:
guess = input("请输入你的猜测(三位数): ").strip()
# 检查输入是否有效
if not guess.isdigit() or len(guess) != 3 or int(guess) < 100 or int(guess) > 999:
print("无效的输入,请输入一个有效的三位数。")
continue
guess = int(guess)
pico = 0 # 猜对数字但位置不对的数量
fermi = 0 # 猜对数字且位置对的数量
for i in range(3):
if guess // 10**(2-i) % 10 == target_number // 10**(2-i) % 10:
if i == target_number.count(guess // 10**(2-i) % 10):
fermi += 1
else:
pico += 1
if fermi == 3:
print("恭喜你!猜对了!")
break
elif pico > 0:
print("Pico")
elif fermi > 0:
print("Fermi")
else:
print("Bagels")
guesses_left -= 1
if guesses_left == 0:
print(f"很遗憾,你的机会用完了。正确答案是:{target_number}")
if __name__ == "__main__":
guess_number_game()
注意:
- 代码中,我们使用了
//
运算符来进行整除,以及%
运算符来找到每一位上的数字。 count()
方法用于检查在目标数字中某个数字出现的次数,这有助于确定是否猜对了位置。- 如果用户输入的不是一个有效的三位数,程序会提示用户重新输入。
- 当用户猜对全部数字且位置也正确时,游戏结束并宣布用户胜利。如果用户在10次内未能猜中,则显示正确答案。