在netlogo世界中从绿色斑块反弹龟

时间:2017-07-21 10:58:34

标签: netlogo

我试图实施弹跳乌龟逻辑。当任何乌龟朝绿色斑块移动时,我想设置turtles head = set head ( - head)

我的代码是:

ask turtles [ask turtles [
  ifelse [pcolor] of patch-ahead 2 !=[move]  
[ set heading ( - heading) ]

问题:但是它给出了错误(预期输入是一个乌龟代理集或补丁代理集或乌龟或补丁,但却得到了NOBODY)。 如何解决这个错误?

1 个答案:

答案 0 :(得分:1)

您的代码示例中似乎存在一些拼写错误,但您当前问题的答案是,如果前面的补丁2位于世界之外,patch-ahead 2将返回nobody ,因为没有这样的补丁。所以,当你得到nobody时,你的乌龟非常靠近世界的边缘。我假设您也希望在该实例中进行转换,因此您的ifelse可能看起来像

ifelse (patch-ahead 2 != nobody and [pcolor] of patch-ahead 2 != green)
  [move]
  [set heading (- heading)]

请注意,您需要在检查颜色之前检查nobody