gpt4 book ai didi

java - 生命游戏 : how to have "entities" to evolve in parallel?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:02:50 25 4
gpt4 key购买 nike

好吧,标题不清楚,这就是我的意思。

我正在编写某种游戏(比如生命游戏)。例如,有动物(每个动物都是一个类的 Java 实例)。

所有这些动物都在 map 上,所有这个“世界”在每个“回合”进化

这些动物可以在每个回合 进行操作。示例:一只狼杀死了一只羊

但是,我对在状态之间进行这些进化的“方式”有疑问,因为结果将取决于我循环遍历动物的顺序

示例:

  • Wolf first : 狼先杀了羊(然后羊死了,所以没有 Action )
  • Sheep first : 羊吃了一些草,然后然后(轮到狼)狼杀死了羊

我该如何解决这个问题?

多线程? (但我会有很多动物,比如 1000 只甚至更多……)。是否有一种算法,一种“方式”来做到这一点?

谢谢

最佳答案

您应该正确地模拟轮流,即让每只动物根据世界的当前状态轮流,以便将 Action 的结果更新为世界的下一个状态,而不是当前状态。即

  1. 在当前步骤中,羊吃草,狼杀死它。
  2. 在世界的下一个状态中,只有狼而没有羊(或羊尸体 - 取决于您的模型)。

通过这种方式,评估顺序不会影响结果,这为例如并行执行,最好使用 FutureTask s 和一个 ThreadPoolExecutor .

关于java - 生命游戏 : how to have "entities" to evolve in parallel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3713449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com