NetLogo set [energy] of one of turtles

NetLogo set [energy] of one-of turtles

我正在尝试在 NetLogo 中创建简单的模型,当两只乌龟相遇时,能量最多的那只将所有能量都分配给第二只乌龟。

我设置命令meet

to meet    
  ask turtles[ let candidate one-of turtles-at 1 0
    if candidate != nobody [

      if [energy] of candidate > energy [
        set color [color] of candidate
        set energy energy + [energy] of candidate
        set [energy] of candidate 0 ;; ISSUE HERE
      ]

   if [energy] of candidate < energy [
        set color [color] of candidate ;; ?
        set [energy] of candidate [energy] of candidate + energy 
        set energy 0 
      ]

    ]
  ] 

所以,我用 set energy energy + [energy] of candidate 重置了乌龟(自我)的能量,然后我用:set [energy] of candidate 0 但是我可以得到一条错误消息:这不是什么东西你可以在.

上使用“set”

我应该如何在交易期间重置 candidate 能量?同样在第二个 if 期间,如何将候选颜色设置为(自我)海龟自己的颜色? (set color [color] of candidate)

turtles-own[energy]

to setup
  clear-all
  reset-ticks
  setup-patches
  setup-turtles
end

to setup-patches
  ask patches [  
    set pcolor gray  
  ]
end

to setup-turtles
  create-turtles 20

  ask turtles[
    set shape "wolf"
    set size 2

 set color one-of base-colors
 setxy random-xcor random-ycor

 set energy 10 + random 30
]
end

to go
  if max [energy] of turtles < 1 [ stop]
  tick
  move
  meet
end

to move
   ask turtles[ fd 1 right random 360 ]
 end

to meet    
  ask turtles[ let candidate one-of turtles-at 20 0
    if candidate != nobody [
      if [energy] of candidate > energy [
        set color [color] of candidate
        set energy energy + [energy] of candidate
        set [energy] of candidate 0 ;; HERE ISSUE
      ]

     if [energy] of candidate < energy [
        set color [color] of candidate
        set [energy] of candidate [energy] of candidate + energy 
        set energy 0 
       ]

    ]
  ] 
end

set [...] of ... 语法仅存在于极旧版本的 NetLogo 中。

在当前的 NetLogo 中,您可以:

ask candidate [ set energy 0 ]