Python教程之倒计时猜数字
要为猜数字游戏添加计时器功能,我们可以使用Python的time模块来实现。以下是修改后的代码示例,其中包含了计时器的实现:
import random
import time
def guess_number_game():
# 随机生成一个1到100之间的数字
secret_number = random.randint(1, 100)
attempts = 0
total_time = 60 # 总时间限制为60秒
start_time = time.time() # 记录游戏开始时间
print("欢迎来到猜数字游戏!")
print("我已经想好了一个1到100之间的数字。")
print("看看你是否能在10次之内猜中它!")
print(f"你有{total_time}秒的时间来完成游戏。")
while attempts < 10:
attempts += 1
remaining_time = total_time - (time.time() - start_time)
print(f"剩余时间:{int(remaining_time)}秒")
try:
guess = int(input("猜一个数字:"))
except ValueError:
print("请输入一个有效的整数!")
continue
# 检查玩家的猜测
if guess < secret_number:
print("太低了!")
elif guess > secret_number:
print("太高了!")
else:
print(f"恭喜你!你猜对了,数字是{secret_number}。")
print(f"你总共猜了{attempts}次。")
print(f"你用时{int(time.time() - start_time)}秒。")
return
time.sleep(1) # 等待1秒,确保计时器准确
if time.time() - start_time >= total_time:
print("时间到!")
print(f"很遗憾,你没有猜中。")
print(f"正确答案是{secret_number}。")
else:
print("很遗憾,你没有猜中。")
print(f"正确答案是{secret_number}。")
print(f"你总共猜了{attempts}次。")
print(f"你用时{int(time.time() - start_time)}秒。")
if __name__ == "__main__":
guess_number_game()
代码说明
-
导入模块:
import random import time导入
random模块用于生成随机数,导入time模块用于计时。 -
定义游戏函数:
def guess_number_game(): -
生成随机数:
secret_number = random.randint(1, 100) -
初始化尝试次数和总时间:
attempts = 0 total_time = 60 # 总时间限制为60秒 -
记录游戏开始时间:
start_time = time.time() -
打印游戏说明和时间限制:
print("欢迎来到猜数字游戏!") print("我已经想好了一个1到100之间的数字。") print("看看你是否能在10次之内猜中它!") print(f"你有{total_time}秒的时间来完成游戏。") -
进入猜数字循环:
while attempts < 10: -
显示剩余时间:
remaining_time = total_time - (time.time() - start_time) print(f"剩余时间:{int(remaining_time)}秒") -
获取玩家输入并处理异常:
try: guess = int(input("猜一个数字:")) except ValueError: print("请输入一个有效的整数!") continue -
检查玩家猜测:
if guess < secret_number: print("太低了!") elif guess > secret_number: print("太高了!") else: print(f"恭喜你!你猜对了,数字是{secret_number}。") print(f"你总共猜了{attempts}次。") print(f"你用时{int(time.time() - start_time)}秒。") return -
等待1秒以确保计时器准确:
time.sleep(1) -
检查是否达到时间限制:
if time.time() - start_time >= total_time: print("时间到!") print(f"很遗憾,你没有猜中。") print(f"正确答案是{secret_number}。") else: print("很遗憾,你没有猜中。") print(f"正确答案是{secret_number}。") print(f"你总共猜了{attempts}次。") print(f"你用时{int(time.time() - start_time)}秒。") -
调用游戏函数:
if __name__ == "__main__": guess_number_game()
通过这个修改,游戏会在每次玩家猜测后显示剩余时间,并且会在时间用尽时结束游戏。