Python游戏 - 创建保存文件?

时间:2012-02-27 14:37:56

标签: linux windows-xp python-2.7 save

我在python 2.7.2中创建了一个游戏,但是我遇到了麻烦。我想通过让程序创建一个python脚本并在里面有一个模块来保存游戏中的游戏状态 基本上是说在游戏中跳转到这样的模块。

这是一款完全基于控制台的黑客游戏,基于真实的技术和程序。 它设置在linux环境中;)

我确实找到了这个:

Python game save file

但有些代码我不知道如何使用,我不确定它们是否适合我的场景。

提前感谢。

2 个答案:

答案 0 :(得分:0)

我假设游戏中有一些内部对象,例如“棋盘”或“玩家”或类似物,它们拥有游戏状态。

如果您不需要跨平台兼容性等,存储python对象的最简单方法是通过pickle

如果您的游戏状态是字典,列表等,并且需要更多与平台无关的文件格式,则可以将它们存储在json中。

当然,这两种格式非常很容易进行逆向工程和黑客攻击 - 因此您可能会考虑某种加密/ hmac - 当然如果您将游戏作为源代码发布,那么总是更容易破解游戏的方法比修改保存文件。

答案 1 :(得分:0)

像Kimvais所说,使用泡菜模块是一个简单的选择。我将它用于我的游戏以保存和加载配置文件数据,以及保存和加载每个级别。这是一个保存玩家个人资料的功能示例,其中包括她解锁的等级,收集的物品等。

def writeProfile(profileName, profileData):
    """ pickle user profile data """

    os.chdir(PROFILE_DIR)

    fileName = profileName + ".dat"
    f = open(fileName, "wb")
    pickle.dump(profileData, f)
    f.close()

    os.chdir("..")

profileName是一个字符串,其中包含存储播放器数据的.dat文件的名称。 profileData是新数据(存储在python对象中,如元组,列表和字典),它将覆盖旧数据并存储在.dat文件中。 PROFILE_DIR是存储保存的游戏数据的目录的路径。 os是一个python模块,可以执行导航目录和查找文件等内容。