我在尝试实施一个捕食者-食肉动物模型。它是基于agent的模型。每隔几毫秒就会有一次新的变化。在野外有两种生物:捕食者和猎物。他们每一个人的行为由以下规则决定:
猎物:
的次数
掠食者:
中
我对猎物的选择有问题。

例如,我在单元格5和9中有猎物。每个单元格都可以移动到单元格6。如何解决这个冲突?谢谢
发布于 2012-01-20 11:11:09
使用异步更新。以随机顺序遍历猎物,让它们依次决定应该移动到哪个细胞。
这是一种常见的模拟方法。它还有一个额外的好处,就是它消除了动力学中的极限环。
发布于 2012-01-20 09:39:37
“移动”需要多长时间?如果你移动一个,那么在猎物移动之后,你移动下一个,没有冲突。猎物只会看到空间已经被占据并转移到其他地方。
如果移动需要时间,你可以说猎物互相注视,看看其他猎物是否试图移动(就像人们在交通中观察汽车一样)。然后,当来自5的猎物试图移动时,您会将目标字段的状态更改为“为5保留”。然后从9的猎物可以看到这一点,并决定他们是否想与5碰撞(可能是无畏:P)或避免5。
发布于 2012-01-20 09:40:26
取决于游戏逻辑。如果preys可以位于同一单元格上,那么只需使用指示符显示捕食计数。如果使用2D数组表示当前字段状态,则可以使用以下代码:
-1 - predator
n - preysN >= 0,(n =0-细胞为空,n=1细胞包含1只猎物等)。
否则(如果猎物不能出现在同一单元格上),则使用基于转弯的策略。把你所有的猎物都保存在数组里,或者给每个猎物编号。在这种情况下,preys的动作由简单循环(伪代码)表示:
for each prey in preys
move(prey)
end哪里移动逻辑描述算法如何你的猎物移动。
https://stackoverflow.com/questions/8939122
复制相似问题