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