python 如何为纯文本游戏创建“保存进度”和“载入保存”功能?

wn9m85ua  于 2023-02-07  发布在  Python
关注(0)|答案(2)|浏览(407)

My Code
在纯文本游戏中,如果保存的只是一堆嵌套的“if”语句路径下的进度,我该如何保存进度呢?(没有库存,等等)
我听说过“酸洗”,但不知道该怎么处理我发现的信息,因为我是全新的编码。

gxwragnw

gxwragnw1#

为了使它更健壮,你可能不希望它被编码成一堆嵌套的if-then,你可以为每个Room / Encounter / Episode创建一个新的class,在这个新类的示例中,你可能仍然有一些if-then序列。
然后,如果它是线性的,你可以有一个list,它只包含所有剧集的顺序。当你save时,你可以保存一个文本文件,它只包含你正在播放的剧集的名称。然后load会读取这个文本文件,并获得他们保存在其中的剧集的名称。循环遍历所有剧集的列表,直到找到同名的剧集,并从该剧集开始(在剧集的开头)。
我对pickle不是很熟悉,但我不认为它会做你想要的。我不认为它是为了在运行中“保存”脚本,这是你现在的东西是如何设置的。相反,它存储对象(如列表,字典,或更复杂的东西,如连续训练4天的机器学习模型)。
尽管如此,你的问题的范围可能有点大,在这里得到一个彻底的答案。

7dl7o3gd

7dl7o3gd2#

有一种想法是,你有一个计数器,在每一个If-Else点之后,计数器加1。
在每一个If-Else点周围,你都有一个更大的if,如果计数器足够大,它就跳过那个If-Else。
明白了吗?我用一些伪代码进行了演示

counter = 0

if counter < 1:
Print("do you give the money?")
input("y/n")
counter += 1

if counter < 2:
print("he got angry. What do you do?")
(...)
counter +=1

然后为了保存游戏,你把计数器存储在一个txt文件或者csv文件或者json文件什么的。

相关问题