我在python 2.7.2中创建了一个游戏,但是我遇到了麻烦。我想通过让程序创建一个python脚本并在里面有一个模块来保存游戏中的游戏状态 基本上是说在游戏中跳转到这样的模块。
这是一款完全基于控制台的黑客游戏,基于真实的技术和程序。 它设置在linux环境中;)
我确实找到了这个:
但有些代码我不知道如何使用,我不确定它们是否适合我的场景。
提前感谢。
答案 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模块,可以执行导航目录和查找文件等内容。