当乌龟经过某个补丁时,它会更改颜色并继续以新颜色随机移动。因此,我问名为“ yong”的乌龟,它们的颜色为黄色,如果任何“ yong”乌龟通过了半径2的斑块,则应将其颜色更改为绿色。我的代码运行没有错误,但在输出中,所有黄色的“永”海龟都将颜色更改为绿色,这不是我想要的。
SELECT
答案 0 :(得分:1)
您的问题是,您让乌龟询问补丁in-radius
,这将把这些补丁的起源放在乌龟碰巧的任何地方。相反,您需要在距原点2距离内的补丁。
to interact-turtles
let sink patches with [abs px-cor <= 2 and abs py-cor <= 2]
ask yong-on sink [ set color green ]
end
但是,如果您希望该接收器区域是环境的永久功能,则可以使用变量来存储它,而不是重复创建它。作为全局变量:
globals [sink]
to setup
...
set sink patches with [abs px-cor <= 2 and abs py-cor <= 2]
...
end
然后,您随时可以ask yong-on sink
做事。
或者,对于每个补丁,您都可以有一个true / false(布尔值)变量,说明它是否在接收器中。
patches-own [sink?]
to setup
...
ask patches [ set sink? if abs px-cor <= 2 and abs py-cor <= 2]
...
end
然后,您可以使用类似ask yong-on patches with [sink?]
的结构来做事。