如何设置myheading等于Netlogo中的领导者标题

时间:2014-10-16 20:30:50

标签: netlogo

我要做的是:

伪代码

to flock
 check flockmates
 if find any leader inside the flockmates
   change myheading to leader's heading
 else
   follow flocking rule [separate, allign, cohesion]
 end

以下是我使用的代码。

turtles-own
[ flockmates
  nearest-neighbor
  leader?
  leader
 ]

to setup
__clear-all-and-reset-ticks

ask n-of population patches with [ pcolor = blue]
 [sprout 1
  [set color white
   set size 0.6
   set leader? false]
  ]
choose-leaders
end

to choose-leaders
ask n-of ((percent_of_leader / 100) * population ) turtles
[set leader? true
set color black
set size 0.6
set leader self
]
end

to go
 ask turtles [flock]
end

to flock
 find-flockmates
 let nearby-leaders turtles with [leader? ]
 ifelse any?  nearby-leaders
 [ set heading [heading] of nearby-leaders]

 [ find-nearest-neighbor
  ifelse distance nearest-neighbor < minimum-separation
    [separate]
    [ if any? flockmates
      [align
      cohere ]]]
end

to find-flockmates  ;; turtle procedure
 set flockmates other turtles in-cone vision vision-angle
end

to find-nearest-neighbor ;; turtle procedure
 set nearest-neighbor min-one-of flockmates [distance myself]
end

然而,当我运行代码时,此错误消息弹出无法将海龟变量HEADING设置为非数字[147]。并且它指向此代码[set heading [heading]附近的领导者]。我在这里做错了什么?如果有人可以提供帮助,我真的很感激。

1 个答案:

答案 0 :(得分:3)

因为您的代码中的附近领导者是海龟集,所以您应该使用one-of

set heading [heading] of one-of nearby-leaders