我试图实施弹跳乌龟逻辑。当任何乌龟朝绿色斑块移动时,我想设置turtles head = set head ( - head)
我的代码是:
ask turtles [ask turtles [
ifelse [pcolor] of patch-ahead 2 !=[move]
[ set heading ( - heading) ]
问题:但是它给出了错误(预期输入是一个乌龟代理集或补丁代理集或乌龟或补丁,但却得到了NOBODY)。 如何解决这个错误?
答案 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
。