如何在 NetLogo 上创建带内存的海龟?

How create a turtles with memory on NetLogo?

我需要一些帮助来编写这样的代码:一只乌龟探索世界并死去,将要创建的下一只乌龟将采用与前一只乌龟相同的路径,依此类推,所以最后一只乌龟可以走任何一条路在它之前出现的任何其他乌龟的路径。如果有人有任何想法,我可以如何做这个或一些模型,我可以探索这个想法。非常感谢

谢谢大家

我认为您需要两个列表:一个 turtles-own 列表,其中包含路径(patch-here 或特定坐标的列表)。在海龟死亡之前,您可以将路径保存在全局“路径列表”中。

当一只乌龟不应该走自己的路,而是应该“模仿”另一只乌龟的路时,它可以使用 one-of 然后 move-to 从路径列表中获取随机路径(如果您保存了补丁或 setxy 如果您保存了坐标)列表的第一个元素。您应该删除第一项,以便在下一步中乌龟将移动到下一个位置。

也许品种的概念对您来说很有趣,可以区分开辟自己道路的海龟和跟随它们的海龟。

turtles-own 
[
  path
  imitation-path
]
globals [path-list]

to setup-random
  ca
  reset-ticks
  set path-list []
  crt 2
  [
    setxy random-xcor random-ycor
    pen-down
    set path (list patch-here)
  ]
end

to go-random
  tick
  ask turtles 
  [
    if ticks > 10
    [
      set path-list lput path path-list
      die
    ]
    move-to one-of neighbors
    set path lput patch-here path
  ]
end

to setup-imitators
  crt 2
  [
    set imitation-path one-of path-list
    move-to first imitation-path
    set imitation-path remove-item 0 imitation-path
  ]  
end

to imitate
  ask turtles 
  [
    if empty? imitation-path
    [ die ]
    move-to first imitation-path
    set imitation-path remove-item 0 imitation-path
  ]
end