如何避免海龟重新访问他们上次的补丁?

Min*_*ing 3 netlogo

海龟留下60个蜱虫的补丁,然后移动到另一个目标补丁.如何避免海龟重新访问他们上次的补丁?谢谢

嗨塞思和弗兰克,

非常感谢您的回复.对不起,我没有详细描述问题.

海龟不会访问它们在最后一个刻度线上的补丁,并且将移动到另一个最近的补丁而不是下一个滴答.以下代码表示他们找到最近的补丁,并继续前进.

我想要做的是龟将在下一个滴答中再次找到最近的补丁.如果最近的补丁仍然与最后一个补丁相同,那么他们将转移到距离他们最近的其他替代方案.谢谢

let closest-leaf min-one-of (patches in-radius 1 with [pcolor = lime]) [distance myself]

face closest-leaf

fd distance closest-leaf
Run Code Online (Sandbox Code Playgroud)

Fra*_*can 5

一个好的方法是访问可以维护的海龟自己的补丁变量(记住在创建乌龟时将其初始化为空列表).

turtles-own [ patches-visited ]

to setup
  ...
  ask turtles [ set patches-visited [] ]
  ...
end

to move
  let potential-targets filter [ not member? ? patches-visited ] target-patches
  let target-patch one-of potential-targets

  if target-patch != NOBODY [
    set patches-visited fput target-patch patches-visited
    ; move to target patch
  ]
end
Run Code Online (Sandbox Code Playgroud)