我正在制作一个关于python和tkinter的游戏,我想保存游戏的高分。我有一个条目wich接受玩家的名字并将其分配给一个全局(Name1)和一个全局(Score1),在其中分数被保存。
问题是,我需要一个文件,存储最好的10个高分,显然显示他们从最大的分数到最低。
我的问题是:我该怎么做?
如何将姓名和分数保存到文件中? 我怎样才能用命令来保存分数呢?(包括与分数相关的名字)
我对使用.readline()和.write()和.seek()等方法感到困惑。
编辑:
我需要这样的东西:
全局是Name1,Wich让我们说是“John”和Score1,Wich在游戏结束时将有一个int对象。
所以在几场比赛之后,约翰的得分达到了3000,然后是3500,然后是2000。
highscores文件应该如下所示:
约翰3500
约翰3000
约翰2000
如果迈克上场并取得3200分,那么文件应该是这样的:
约翰3500
迈克3200
约翰3000
约翰2000
得分最高的球员人数必须是10人。所以,如果已经有10个高分被保存,并且有一个更大的高分出来,那么最低的分数必须被忽略或删除。(我需要文件,因为我需要在Tkinter窗口上显示)
警察:原谅我奇怪的英语!谢谢您!
user2109788的答案基本上就是您所需要的全部,并且
pickle
或shelve
是序列化数据的最佳方式,因为该文件不需要人类可读。今天感觉很大方,下面的代码应该很容易适应您使用tkinter的具体情况。
为了在high score表中只保留10个值,我只需向列表中添加一个新的high score,对其进行排序,并通过对排序后的列表进行切片来保留前10个值。对于10个值应该没问题,但是如果你的列表很大的话,这将是一个糟糕的主意。
脚本中可以有一个元组列表,用于存储高分和sort高分,然后再将其显示给用户。可以使用shelve或pickle存储python变量(存储高分)
元组列表如下: [(姓名1,分数1),(姓名2,分数2),…(姓名10,分数10)]
相关问题 更多 >
编程相关推荐