在Netlogo中,如何将海龟移动到其链接的另一端?

在Netlogo中,如何将海龟移动到其链接的另一端?,netlogo,Netlogo,在我的模拟中,我创造了两种海龟:一种是普通海龟,另一种是一个光环,用于重叠每只海龟。无论何时孵化海龟(作为设置过程的一部分创建或使用netlogo的孵化功能创建),都会通过调用单独的生成光晕功能来孵化和链接光晕 create turtles turtle-initial-number ;;(all the turtle genes are set here) if halos-enabled [make-halo] to make-halo hatch-halos 1 [ set s

在我的模拟中,我创造了两种海龟:一种是普通海龟,另一种是一个光环,用于重叠每只海龟。无论何时孵化海龟(作为设置过程的一部分创建或使用netlogo的孵化功能创建),都会通过调用单独的生成光晕功能来孵化和链接光晕

create turtles turtle-initial-number
;;(all the turtle genes are set here)
if halos-enabled [make-halo] 

to make-halo
  hatch-halos 1
  [ set size sight-radius * 2 + 1
    set shape "square"
    set color lput 64 extract-rgb color 
    __set-line-thickness 0.5
    create-link-from myself
    [ tie
      hide-link ] ]
end
由于我实现了一些交互,有时海龟和光环会彼此分离,因此我想在每个勾号的末尾添加一个步骤,所有光环都会回到它们所属的海龟身上。有没有办法移动光环或将其坐标设置为链接另一端的海龟

另一种选择是解决断开连接时发生的任何问题。我有另一种海龟(人),它可以用下面的推离功能“推”别人。海龟(和它们的光环)占据人前面的9个正方形,在人面对的同一方向被向前推。当它们被推的时候,由于某种原因海龟不再处于光环的中心

to push-away  
  ask people [
    let push-dir heading
    ask patch-ahead 2 
    [ask turtles-here 
      [set heading push-dir
       fd 2]
    ask neighbors
      [ask turtles-here 
        [set heading push-dir
        fd 2]
        ] 
    ] 
  ]
end

理论上,
tie
应该将动作联系起来。但是要将光环捕捉到海龟身上,您可以
要求
光环移动到
海龟身上。唯一的诀窍是识别正确的海龟,而你没有显示足够的代码让我帮你识别

我建议你在光环中添加一个变量来记录海龟,而不是使用链接。如果链接没有其他用途,则无需创建所有这些额外的模型实体。您可以这样使用它:

halos-own [my-owner]

to make-halo
  hatch-halos 1
  [ set size sight-radius * 2 + 1
    set shape "square"
    set color lput 64 extract-rgb color 
    __set-line-thickness 0.5
    set my-owner myself      ; this is the new line
 ]
end

to push-away
  <all the code you have already>
  ask halos
  [ move-to my-owner
  ]
end
halos own[我的主人]
制造光晕
舱口光晕1
[设定尺寸视距半径*2+1
设置形状为“方形”
设置颜色lput 64提取rgb颜色
__将线厚度设置为0.5
让我的主人自己来,这是新的路线
]
终止
推开
询问光环
[搬到我的主人那里去
]
终止

感谢您的回复!我认为鉴定可能相当复杂,因为我有多个品种,它们可能有光环,也可能没有光环(拨动开关)。我的代码在这里发布相当复杂,有很多事情在进行,有多个文件。如果我把海龟和光环之间的断开的确切位置贴出来,也许会有所帮助。我会把它添加到我的问题中!在某个时候,你必须给海龟指定光环,可能是围绕着你第一次发布的代码。这就是我想要的代码谢谢。我添加了额外的代码。非常感谢你的帮助!见扩展答案谢谢,这很有效。我不知道您可以使用代理的ID作为值,这非常有用。这不是答案,但我注意到您有类似于
ask patchset[ask turtles here[…]]
的构造。这些可以替换为
ask turtles on patchset[]
谢谢,这样会更干净。