我正在尝试创建一个游戏,我希望在相同的种子条件下始终运行相同的游戏。这意味着,对于两个使用相同种子的球员来说,随机事件--无论他们是什么--都是一样的。但是,考虑到用户保存和加载游戏的能力,Ruby的随机设置会在每次加载保存时重置,如果两名玩家在不同的点保存和加载,则整个原则就无效。
我为此设想的唯一解决方案是,每当加载一个保存文件时,生成与以前相同数量的点,从而使Ruby的随机状态与加载前的状态相同。但是,要做到这一点,我需要扩展它,以便每次生成随机数时更新计数器。
有没有人知道如何做到这一点,或者有一个更好的方法来恢复Ruby的随机状态?
PS:我不能使用一个随机的实例(Random.new)并对其进行马歇尔。我必须使用Ruby的默认值。
发布于 2015-09-07 11:20:43
发布于 2015-09-06 20:51:56
我建议在用户决定保存(或程序关闭时)时,根据您的喜好将“当前”数据保存到文件中。
这可以使用ruby中的文件类来完成。
这意味着您需要跟踪转弯,并将其与保存数据一起传递。或者,您可以循环遍历文件中的数据,并找出以这种方式发生了多少次转弯。
所以你会有这样的东西:
def loadGame(loadFile)
loadFile.open
data = loadFile.read
# What you do below here depends on how you decide to store the data in saveGame.
end
def saveGame(saveFile)
saveFile.open
saveFile.puts data
end
没有真正尝试以上的代码,所以它可能是错误的语法或诸如此类。这主要是我想要理解的概念。
希望这能帮上忙?
https://stackoverflow.com/questions/32431102
复制