领导选择表代理群NetLogo

领导选择表代理群NetLogo,netlogo,Netlogo,我想实现这样一个场景:NetLogo模拟中的所有代理都应该报告其邻居中代理的数量,最多可达3个radius补丁。然后,在其半径范围内拥有最多代理的前三名应该是“领导者”吗?是的。因为我使用的是“海龟自己的[是领导者吗?]” to setup ca ask n-of 30 patches [sprout 1 [ set size .8 ] ] end to go fd 0.5 lt random 20 choose-leader end to choose-leader end 试着

我想实现这样一个场景:NetLogo模拟中的所有代理都应该报告其邻居中代理的数量,最多可达3个radius补丁。然后,在其半径范围内拥有最多代理的前三名应该是“领导者”吗?是的。因为我使用的是“海龟自己的[是领导者吗?]”

to setup
ca
ask n-of 30 patches [sprout 1 [
 set size .8
 ]
] 
end
to go
fd 0.5
lt random 20
choose-leader
end

to choose-leader


end
试着这样做:

  • 海龟的变量“IsLeader?”设置为false

  • 海龟在每次滴答声中都会以您决定的随机方式移动,然后将其“is leader?”变量设置为false

  • 执行选择引线的过程。它选择半径3中邻居数量较多的3只海龟,并将其“是领导者?”设置为真

代码:

 turtles-own[
   is-leader?
]

to setup
  ca
  ask n-of 30 patches [sprout 1 [set size .8 set is-leader? false]] 
end

to go
  ask turtles[
     fd 0.5
     lt random 20
     set is-leader? false
  ]
  choose-leader

end

to choose-leader

   ask max-n-of 3 turtles [count turtles in-radius 3] [set is-leader? true]

end