My Code在纯文本游戏中,如果保存的只是一堆嵌套的“if”语句路径下的进度,我该如何保存进度呢?(没有库存,等等)我听说过“酸洗”,但不知道该怎么处理我发现的信息,因为我是全新的编码。
gxwragnw1#
为了使它更健壮,你可能不希望它被编码成一堆嵌套的if-then,你可以为每个Room / Encounter / Episode创建一个新的class,在这个新类的示例中,你可能仍然有一些if-then序列。然后,如果它是线性的,你可以有一个list,它只包含所有剧集的顺序。当你save时,你可以保存一个文本文件,它只包含你正在播放的剧集的名称。然后load会读取这个文本文件,并获得他们保存在其中的剧集的名称。循环遍历所有剧集的列表,直到找到同名的剧集,并从该剧集开始(在剧集的开头)。我对pickle不是很熟悉,但我不认为它会做你想要的。我不认为它是为了在运行中“保存”脚本,这是你现在的东西是如何设置的。相反,它存储对象(如列表,字典,或更复杂的东西,如连续训练4天的机器学习模型)。尽管如此,你的问题的范围可能有点大,在这里得到一个彻底的答案。
class
list
save
load
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文件什么的。
2条答案
按热度按时间gxwragnw1#
为了使它更健壮,你可能不希望它被编码成一堆嵌套的if-then,你可以为每个Room / Encounter / Episode创建一个新的
class
,在这个新类的示例中,你可能仍然有一些if-then序列。然后,如果它是线性的,你可以有一个
list
,它只包含所有剧集的顺序。当你save
时,你可以保存一个文本文件,它只包含你正在播放的剧集的名称。然后load
会读取这个文本文件,并获得他们保存在其中的剧集的名称。循环遍历所有剧集的列表,直到找到同名的剧集,并从该剧集开始(在剧集的开头)。我对pickle不是很熟悉,但我不认为它会做你想要的。我不认为它是为了在运行中“保存”脚本,这是你现在的东西是如何设置的。相反,它存储对象(如列表,字典,或更复杂的东西,如连续训练4天的机器学习模型)。
尽管如此,你的问题的范围可能有点大,在这里得到一个彻底的答案。
7dl7o3gd2#
有一种想法是,你有一个计数器,在每一个If-Else点之后,计数器加1。
在每一个If-Else点周围,你都有一个更大的if,如果计数器足够大,它就跳过那个If-Else。
明白了吗?我用一些伪代码进行了演示
然后为了保存游戏,你把计数器存储在一个txt文件或者csv文件或者json文件什么的。