猜数游戏的python程序

这是一个简单的猜数游戏的Python程序。在这个游戏中,计算机会随机选择一个1到100之间的数,然后让用户尝试猜测这个数。

复制代码
import random

def game():
    number_to_guess = random.randint(1, 100)
    guess = None
    attempts = 0

    while guess != number_to_guess:
        guess = int(input("请猜一个1到100之间的数: "))
        attempts += 1
        if guess < number_to_guess:
            print("太低了!再试一次。")
        elif guess > number_to_guess:
            print("太高了!再试一次。")
    
    print(f"恭喜你,你猜对了!这个数就是 {number_to_guess}。")
    print(f"你一共尝试了 {attempts} 次。")

if __name__ == "__main__":
    game()

这个程序会持续要求用户输入猜测的数字,直到猜对为止。如果用户的猜测数字低于目标数字,它会输出 "太低了!再试一次。",如果用户的猜测数字高于目标数字,它会输出 "太高了!再试一次。" 如果用户猜对了数字,程序会告诉用户他们猜对了,并显示他们尝试的次数。

我们可以增加一些新的功能,比如:记录用户的名字,记录他们猜的次数,让用户可以选择是否再玩一次,以及显示用户的历史记录。

复制代码
import random

def game():
    number_to_guess = random.randint(1, 100)
    guess = None
    attempts = 0
    player_name = input("请输入你的名字: ")
    game_history = []

    while guess != number_to_guess:
        guess = int(input(f"{player_name}, 请猜一个1到100之间的数: "))
        attempts += 1
        game_history.append((guess, attempts))
        if guess < number_to_guess:
            print("太低了!再试一次。")
        elif guess > number_to_guess:
            print("太高了!再试一次。")
    
    print(f"恭喜你,{player_name},你猜对了!这个数就是 {number_to_guess}。")
    print(f"你一共尝试了 {attempts} 次。")
    game_history.append((number_to_guess, attempts))
    print(f"你的游戏历史记录: {game_history}")

    play_again = input("你想再玩一次吗? (是/否): ")
    if play_again.lower() == "是":
        game()
    else:
        print("好的,谢谢参与!")

if __name__ == "__main__":
    game()

在这个新版本的游戏中,我们添加了记录玩家名字、猜的次数、游戏历史记录的功能,并且在玩家猜对数字后询问他们是否想再玩一次。如果他们想再玩一次,我们会重新开始游戏;否则,我们会结束程序。

我们可以增加游戏的难度,比如:让用户可以选择难度,在高级模式下,数字的范围会更大,而且会加入随机数干扰用户的猜测。我们还可以让用户输入他们的记录密码,以便在下次运行游戏时恢复他们的记录。

复制代码
import random

def game():
    number_to_guess = random.randint(1, 100)
    guess = None
    attempts = 0
    player_name = input("请输入你的名字: ")
    game_history = []
    difficulty = input("请选择难度 (简单/高级): ")

    if difficulty.lower() == "高级":
        number_to_guess = random.randint(1, 200)
        random_number = random.randint(1, 20)
        while guess != number_to_guess:
            if random_number == 1:
                guess = int(input(f"{player_name}, 请猜一个1到200之间的数: "))
            else:
                guess = int(input(f"{player_name}, 请猜一个1到100之间的数: "))
            attempts += 1
            game_history.append((guess, attempts))
            if guess < number_to_guess:
                print("太低了!再试一次。")
            elif guess > number_to_guess:
                print("太高了!再试一次。")
        print(f"恭喜你,{player_name},你猜对了!这个数就是 {number_to_guess}。")
        print(f"你一共尝试了 {attempts} 次。")
        game_history.append((number_to_guess, attempts))
        print(f"你的游戏历史记录: {game_history}")
    else:
        while guess != number_to_guess:
            guess = int(input(f"{player_name}, 请猜一个1到100之间的数: "))
            attempts += 1
            game_history.append((guess, attempts))
            if guess < number_to_guess:
                print("太低了!再试一次。")
            elif guess > number_to_guess:
                print("太高了!再试一次。")
        print(f"恭喜你,{player_name},你猜对了!这个数就是 {number_to_guess}。")
        print(f"你一共尝试了 {attempts} 次。")
        game_history.append((number_to_guess, attempts))
        print(f"你的游戏历史记录: {game_history}")
        play_again = input("你想再玩一次吗? (是/否): ")
        if play_again.lower() == "是":
            game()
        else:
            print("好的,谢谢参与!")
            with open('game_history.txt', 'w') as file:
                for item in game_history:
                    file.write(f"{item[0]},{item[1]}\n")
            print(f"游戏历史记录已保存到 'game_history.txt' 文件中.")
            exit()                    
相关推荐
江南十四行20 小时前
Python上下文管理器与with语句——资源管理的艺术
java·jvm·数据库
书源丶20 小时前
四十五、函数式接口与 Lambda 表达式
java·开发语言
2301_8125396720 小时前
golang如何实现最小堆定时器_golang最小堆定时器实现总结
jvm·数据库·python
直奔標竿20 小时前
MySQL与Redis数据一致性实战方案(避坑指南)
java·数据库·spring boot·redis·mysql·spring·缓存
java1234_小锋20 小时前
Java进程突然挂了如何排查?
java·开发语言
lyc878020 小时前
【Qwen3.5-2B-Base】本地模型部署和验证联动千帆api
大数据·python
m0_6908258220 小时前
检测三位随机数中重复数字的Python实现方法
jvm·数据库·python
夕除20 小时前
spring boot--04
java·spring boot
谙弆悕博士20 小时前
GPT-5.5 Instant 免费开放背后的技术跃迁与战略阳谋
人工智能·python·gpt·chatgpt·学习方法·业界资讯
WL_Aurora20 小时前
备战蓝桥杯国赛【Day 6】
python·算法·蓝桥杯