2014-01-22 102 views
2

我需要一些帮助,让我难住一些编码!多变量海龟运动

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

这就是我需要发生的事情:苍蝇需要移动到一定半径内最新鲜的粪便,直到粪便消失。如果半径内没有粪便,他们必须随机移动。

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

任何帮助将不胜感激,谢谢。

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

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

我还可以使它所以苍蝇去与最低补丁自己的补丁,但不能指定这个补丁必须具有某种颜色并且在一定的半径内。

[移动到MIN-之一的补丁[粪评分] *

回答

3

如果结合in-radiusmin-one-ofwith这可能会有帮助。例如:

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

,如果有一个机会,with块可能会返回一个空agentset,您可能希望测试条件,以避免错误。例如:

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