我想让补丁计算站立在它们上面的海龟的数量。理想的情况是这样的事件:
if turtle-lands-on-me [add one to count]
因为海龟可能会离开并返回并被计数两次(这是我想要的),并且它可以避免计算静止不动两次或以上(不希望)的海龟。有什么办法可以做到这一点?
谢谢!
答案 0 :(得分:3)
您需要的是每个补丁的变量(我在下面将其称为“着陆”)。以下代码假定您想了解每个时间步上登陆的补丁,但是忽略了它所传递的补丁。它还仅在乌龟根据要求更改补丁的位置更新计数,并用计数标记补丁。
patches-own [landed]
to setup
create-turtles 20
[ setxy random-xcor random-ycor
]
end
to go
ask turtles
[ let old-patch patch-here
set heading random 360
forward one-of [0 0.5 1 3]
if old-patch != patch-here
[ ask patch-here
[ set landed landed + 1
]
]
]
ask patches [set plabel landed]
end
问题在于,乌龟可以在一个时间步中越过多个斑块。您可以在示例模型中看到那些移动了3只的乌龟。如果您还想要它们,则需要执行类似NetLogo模型库中的“视线”模型。