在前面的示例中,我们创建了一个简单的猜数字游戏。现在,让我们为这个游戏增加一些额外的功能和复杂性,以展示更多的编程概念和技术。
功能增加
限制猜测次数:我们可以为用户设置一个最大猜测次数,如果超过这个次数还没有猜对,游戏将结束。
历史记录:记录用户的每次猜测,并在游戏结束时展示给用户。
计时器:增加一个计时器,记录用户从开始游戏到猜对数字所花费的时间。
代码实现
pythonimport randomimport time
def generate_number():return random.randint(1, 100)
def guess_number():number_to_guess = generate_number()guess = Noneattempts = 0guess_history = []start_time = time.time()
while guess != number_to_guess and attempts < 5: # 限制最多猜测5次guess = int(input("请猜一个1到100之间的数字: "))guess_history.append(guess) # 记录每次猜测attempts += 1
if guess < number_to_guess: print("太低了,请再试一次。") elif guess > number_to_guess: print("太高了,请再试一次。")
end_time = time.time()elapsed_time = end_time - start_time
if guess == number_to_guess:print(f"恭喜你,你猜对了!数字是 {number_to_guess}。")print(f"你总共猜了 {attempts} 次,用时 {elapsed_time:.2f} 秒。")print(f"你的猜测历史是:{guess_history}")else:print("很遗憾,你没有在规定次数内猜对数字。")print(f"正确答案是 {number_to_guess}。")print(f"你的猜测历史是:{guess_history}")
if name == "main":guess_number()
编程概念展示
变量作用域:guess_number 函数内部定义的变量(如 number_to_guess,guess, attempts 等)只在该函数内部可见。
时间处理:使用 time 模块来记录游戏的开始和结束时间,并计算用户猜测所花费的时间。
列表使用:使用 guess_history 列表来记录用户的每次猜测。
条件判断:在 while 循环中,我们使用了两个条件:一是用户的猜测是否正确,二是用户是否还有剩余的猜测次数。
这个进阶版的猜数字游戏展示了更多的编程概念和技术,包括变量作用域、时间处理、列表使用和条件判断。通过实践这样的例子,程序员可以逐步提高自己的编程技能,并创造出更加复杂和实用的程序。