【发布时间】:2023-03-10 00:24:02
【问题描述】:
我正在尝试实现捕食者-猎物模拟,但遇到了问题。
捕食者寻找附近的猎物并将其吃掉。如果附近没有猎物,它们会移动到一个随机的空单元。
基本上,我遇到麻烦的部分是当我推进“一代”时。
假设我有一个 3x3 的网格,每个单元格的编号从 0 到 8。
如果我在 0 和 1 中有 2 个捕食者,则检查第一个捕食者 0,它会移动到单元格 3 或 4
例如,如果它去细胞 3,然后它继续检查捕食者 1。这似乎是正确的
但它有点“优先考虑”具有较低索引值的生物体。我尝试使用 2 个数组,但这似乎也不起作用,因为它会检查生物体存在但不存在的地方。 ._.
任何人都知道如何“公平”和“正确”地做到这一点?
【问题讨论】:
-
如果您担心由于更新循环的扫描而给较低索引中的掠食者带来不公平的优势......为什么不每次都从随机位置开始扫描呢?在网格上选择一个随机点,从那里扫描,直到你绕回那个点。下次你将从不同的点开始。
-
是的,这似乎是最符合逻辑和最简单的答案。嗯。
标签: c algorithm simulation