python - 为简单的文本游戏创建高分文件
问题描述
我正在尝试在 Python 3.1 中创建一个高分文件,该文件存储(已经声明的)用户名和分数。然后,我希望程序打印前 5 个分数和达到这些分数的用户。
目前,我正在使用两个文件 - highscores.txt 和 highuser.txt。我想要的是让代码在 highscores.txt 中找到最高整数值,获取它的数组并将其匹配到 highuser.txt 中的相同位置。
这是我当前的代码:
def highscores():
global score
highscores = open("highscores.txt", "a")
highscores.write(str(score))
highscores.write("\n")
print("done")
highscoreuser = open("highuser.txt", "a")
global username
highscoreuser.write(username)
highscoreuser.write("\n")
print("done")
此代码有效,但我不知道如何对文件进行排序。
解决方案
这应该这样做
with open('highscores.txt','r') as infile:
maxval = 0
maxline = None
i = 0
for line in infile:
if maxval<int(line):
maxline = i
maxval = int(line)
i+=1
i = 0
with open('highuser.txt','r') as infile:
for line in infile:
if i == maxline:
highuser = line.strip()
break
i+=1
推荐阅读
- angular7 - 在 ag-grid 中加载动态列和行时,setColumnDefs 和 setRowData 不起作用
- javascript - fireSQL初始化而不初始化firebase,这可能吗?
- javascript - React Hooks:如何清理事件监听器?
- html - 当使用上一个按钮再次请求页面时,HTML 单选按钮保持选中状态
- javascript - 如何使用 Express/Node 从 POST 请求中获取响应数据?
- c - 如何构建随机点击率模式?
- python-3.x - 忽略来自模块的所有警告
- node.js - 如何强制 Deno 下载最新版本的依赖项?
- flutter - 如何在颤动中制作动画
- azure-devops - 自托管 Windows 构建代理失败的需求