2014-10-21 2 views
0

NetLogo 시뮬레이션의 모든 에이전트가 자신의 이웃에있는 에이전트 수를 반경 3 개까지보고해야한다는 시나리오를 구현하고 싶습니다. 그리고 반경에서 가장 많은 수의 에이전트를 가진 상위 3 명이 '리더를 설정해야합니까? 사실 '. 내가 '거북이 자신의 리더인가? ] '. 이 같은리더 선택 양식 에이전트 무리 NetLogo

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 

답변

2

시도 :

  • 거북이 변수이는 "지도자?" 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