我想限制每个补丁的海龟数量。我想如果我按照(1)和(2)条件限制海龟的移动,它将限制每个补丁的海龟数量,但是我为此尝试的任何代码直到现在都没有用。
假设补丁Y上有五只乌龟,其中五只是限制。
1)要求站在补丁X前面的乌龟(参见图)停止移动,直到补丁Y上有五只乌龟(参见图)。
2)如果补丁z上面有少于五(5)只乌龟,则要求位于补丁Y前面的海龟向前移动到补丁z(参见图),否则停止。
最后我使用以下简单代码
let turtles-ahead other turtles in-cone speed 90
let turtle-ahead min-one-of turtles-ahead [distance myself]
ifelse turtle-ahead != nobody
[
set speed [speed] of turtle-ahead
slow-down
]
[speed-up]
这段代码只是要求乌龟一个接一个地移动模式或队列,但它无法帮助我限制每个补丁的数量,无论限制可能是4,5,6,7,8 ...我已经发芽了“go”程序中的乌龟(每个补丁1只乌龟,根据我的需要)。海龟在一组定义的斑块上发芽,而不是在整个世界。因此,慢慢数量的海龟开始增加并在世界各地移动,并且在经过一定数量的蜱后,它们被要求退出定义的区域并且它们会死亡。现在有时它在某些斑块上显示10,11,...... 37或以上的海龟,我想实际停止。
我已经检查了每个补丁的一个海龟,其他代码示例和许多其他来自互联网的帮助,但没有结果。
对于任何其他想法或帮助,我将被迫。请帮帮我。
答案 0 :(得分:2)
我想你想要让海龟评估他们试图移动的补丁的count
turtles-here
。考虑这个简单的例子:
to setup
ca
ask n-of 15 patches with [ pycor = 0 ] [
sprout 3 [
set heading 90
]
]
reset-ticks
end
to go
ask turtles [
if ( count [turtles-here] of patch-ahead 1 ) < 5 and xcor < 16 [
fd 1
]
]
print [count turtles-here] of patches with [ any? turtles-here ]
tick
end
在每个刻度线上,xcor
小于16的海龟(仅为此示例设置一个停靠点)都会检查patch-ahead 1
上该海龟的计数。如果计数小于5,则乌龟移动到该补丁。否则,乌龟什么都不做。