You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python数字猜谜游戏如何读取、修改并写入高分数据到文本文件

数字猜谜游戏Top10高分榜实现方案

核心逻辑说明

你的需求是按猜测次数从小到大排序(次数越少排名越高),保留前10名的成绩写入本地文件,修改逻辑如下:

  • 首先读取本地文件中所有历史高分存入列表
  • 将本次玩家的猜测次数加入列表后升序排序
  • 截断列表只保留前10个元素,即最新的Top10榜单
  • 将新的榜单覆盖写入原文本文件即可

完整修改代码

# 变量初始化,guesses替换为你本局游戏实际统计的猜测次数
highscores = []
guesses = 3  # 示例值,替换为你的业务变量
beatenscores = 0

# 原有重置分数函数可保留
def reset_scores():
    with open("Numbergame.txt", "w") as f:
        pass

# 读取历史高分,增加空行判断避免报错
with open('Numbergame.txt', 'r', encoding='utf-8') as f:
    for line in f:
        stripped_line = line.strip()
        if stripped_line:
            highscores.append(int(stripped_line))

# 统计击败的玩家数量(可选功能)
beatenscores = sum(1 for score in highscores if score > guesses)
if beatenscores > 0:
    print(f"本次你击败了{beatenscores}位历史玩家")

# 更新高分榜:加入新成绩→排序→保留前10
highscores.append(guesses)
highscores.sort()
highscores = highscores[:10]

# 写入新的高分榜到文件
with open("Numbergame.txt", "w", encoding='utf-8') as f:
    for score in highscores:
        f.write(f"{score}\n")

# 上榜提示
current_rank = highscores.index(guesses) + 1
if current_rank <= 10:
    print(f"恭喜登上Top10榜单!你的成绩是{guesses}次,排名第{current_rank}位")
else:
    print(f"本次成绩为{guesses}次,未能上榜,继续加油~")

注意事项

  • 代码中增加了空行判断逻辑,就算文件为空或者存在空白行也不会报错
  • 排序直接调用内置sort方法,比自己遍历比较效率更高、出错概率更低
  • 写入文件时采用覆盖写模式,自动替换旧的榜单内容
  • 如果需要展示玩家名称,可将存储的内容改成名称:次数的格式,读取后拆分排序即可

内容的提问来源于stack exchange,提问作者KGGaming Fluff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:57:00