Netlogo 如何获得一个补丁来计算通过它的海龟数量

Netlogo 如何获得一个补丁来计算通过它的海龟数量,netlogo,Netlogo,我想让帕茨数一数站在上面的海龟的数量。理想的活动是: if turtle-lands-on-me [add one to count] 因为一只海龟可以离开和回来,并被数到两次(这是我想要的),这将避免数到静止不动的海龟两次或更多(我不想要)。有没有办法做到这一点 谢谢大家! 您需要的是每个补丁的一个变量(下面我称之为“landed”)。下面的代码假定您想知道它在每个时间步上降落的补丁,但忽略它经过的补丁。它还仅在海龟根据请求更改修补程序时更新计数,并用计数标记修补程序 patches-own

我想让帕茨数一数站在上面的海龟的数量。理想的活动是:

if turtle-lands-on-me [add one to count]
因为一只海龟可以离开和回来,并被数到两次(这是我想要的),这将避免数到静止不动的海龟两次或更多(我不想要)。有没有办法做到这一点


谢谢大家!

您需要的是每个补丁的一个变量(下面我称之为“landed”)。下面的代码假定您想知道它在每个时间步上降落的补丁,但忽略它经过的补丁。它还仅在海龟根据请求更改修补程序时更新计数,并用计数标记修补程序

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模型库中执行类似“视线”模型的操作