多变量龟运动

时间:2014-01-22 12:14:26

标签: netlogo

我需要帮助一些令我难过的编码!

我在田地上有苍蝇(海龟品种)。该田地有绿色斑块(草)和棕色和灰色斑块(两种类型的粪便)。有一个“补丁自己”,这是粪便的年龄(绿色斑块= 0,棕色和灰色斑块每蜱增加+1)。

这就是我需要发生的事情:苍蝇需要在一定范围内移动到最新鲜的粪便并保持在那里直到粪便消失。如果半径内没有粪便,它们必须随意移动。

我一直在寻找的方法是使用IF语句,半径函数和下坡函数的某种组合(但我不确定是否允许我选择半径)。

非常感谢任何帮助,谢谢。

* 我最近取得了一些进展。我可以让苍蝇在半径范围内随机移动,但是我无法指定允许苍蝇进入该区域内的哪些补丁。

[移动到半径892中的一个补丁]

我也可以这么做,所以苍蝇会转到补丁最低的补丁,但不能指定这个补丁必须是某种颜色并且在一定范围内。

[移动至最小补丁[dung-score]] *

1 个答案:

答案 0 :(得分:3)

如果您将in-radiusmin-one-ofwith合并,可能会有所帮助。例如:

move-to min-one-of patches in-radius 10 with [member? pcolor [brown green]] [dung-score]

如果with块可能返回空代理集,则可能需要测试条件以避免错误。例如:

let candidates patches in-radius 10 with [member? pcolor [brown green]]
if any? candidates [move-to min-one-of candidates [dung-score] ]