【问题标题】:Multi-variate turtle movement多变量海龟运动
【发布时间】:2014-01-22 12:14:26
【问题描述】:

我需要一些帮助来处理一些让我难过的编码!

我在田野上有苍蝇(一种乌龟品种)。该领域有绿色斑块(草)和棕色和灰色斑块(两种类型的粪便)。有一个“自己的斑块”,即粪便的年龄(绿色斑块 = 0,棕色和灰色斑块每滴答增加 +1)。

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

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

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

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

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

我也可以让苍蝇飞到拥有最低补丁的补丁,但不能指定该补丁必须具有某种颜色并在一定半径内。

[移动到最小一个补丁 [dung-score]]*

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    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] ]
    

    【讨论】:

      猜你喜欢
      • 2018-04-11
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多