NetLogo设置一只海龟的[能量]

问题描述

我正在尝试在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,但出现了错误消息:您不能使用“设置”上的

我该如何在交易期间重置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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)