【问题标题】:Easiest way to save game data for a mastermind game. [duplicate]为策划游戏保存游戏数据的最简单方法。 [复制]
【发布时间】:2013-11-30 20:07:06
【问题描述】:

我正在寻找最简单的方法来保存和加载策划游戏的游戏数据。目前需要保存的东西是,正在玩的颜色数量,正在玩的钉子数量,有多少猜测和实际答案。目前我正在将所有这些信息保存到一个文本文件中。我很难将此信息加载回游戏中,并且遇到了一种叫做酸洗的东西。我已经阅读了一些内容,但我并不完全理解它是如何工作的,以及它与我尝试做的方式有何不同。

谢谢!

【问题讨论】:

  • 但在我看来,Mastermind 是一款回合制桌游。在保存/加载机制中使用文本文件会有什么困难?
  • @Truerror 不幸的是我不擅长编程!我相信我会弄清楚的,但我想知道是否有更好的方法。
  • Mastermind 并不是真正的回合制游戏,因为它是一款单人游戏。正如 OP 所述,您真正需要存储的只是游戏配置(解决方案中可用的颜色和钉子数量)、解决方案以及玩家迄今为止所做的所有猜测。从那里你可以重建完整的 Mastermind 板。
  • @PaulMcGuire 是的,你(可以说)是对的。我刚刚阅读了关于它的维基百科文章。但如果是这样,那么考虑到游戏的性质,一个文本文件就足够了。

标签: python


【解决方案1】:

Pickling 是一种序列化方法 - 将数据持久保存在磁盘上。

您可以根据需要处理手动腌制/取消腌制。但是您要求最简单的方法 - python 有。只需使用shelve

import shelve

d = shelve.open('my_mastermind_shelf')

就是这样。现在就像对待任何其他dict 一样对待dshelve 在幕后处理所有酸洗。唯一需要注意的是:完成后记得调用它的.close() 方法。

【讨论】:

  • 搁置模块是否仅在 Python 3 或更高版本中?因为这需要在 Python 2.7 上运行。
  • @JaAnTr 据我所知,shelve 在 python 1.5 中。它肯定在所有版本的 python 2 中。我链接到 python 2 文档,所以...
【解决方案2】:

正如我在评论中所说,您可以使用一个简单的文本文件来保存游戏的当前状态。您可以使用open() 打开一个(新)文件。通常是这样的:

fname = raw_input("Put in the filename: ")

f = open(fname, 'w')    # This opens the text file for write operations.
                        # If the file already exists, it will truncate it.
                        # If not, then it will creaate a new file.

f.write("Hey, I'm a hippie coder, ho.") # Or, whatever string you want.
                                        # You don't have to be a hippie coder.

f.close()

哦,别介意我这个可怜的例子。这里是凌晨 4 点,我该睡觉了。

【讨论】:

    猜你喜欢
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多