2013-01-23 56 views
0

我製作了一個模型,可以將一個圈子(不同顏色的海龜)圍成一圈。試圖讓派系安排細分? NetLogo代碼建議

目前他們隨機排列,想知道是否有人可以幫助我安排他們,例如,紅色佔據第一個90度,藍色的下一個90度等(在設置上)。

這裏是我的代碼...

ask patch 0 0 
[ ask patches in-radius (max-pxcor * .9) with [ random-float 100 < density ] 
    [ sprout 1 
    [ set breed cons 
     set shape "circle" 
     set faction random factions 
     set heading random 360 
     set size 1 
    ] 
    ] 
] 

..猜我會做360 /分,但不知道如何句話吧,如果有人可以幫助我走出那簡直太好了。謝謝!

回答

1

最接近你想要做的NetLogo基元是in-cone,它報告在另一隻烏龜的「視錐」中的一組烏龜。但是你的「餡餅切片」應該只是相對於patch 0 0,而不是另一隻烏龜!沒問題:只需在patch 0 0上製作一隻臨時烏龜,用適當的角度拿它龜in-cone,殺死你的臨時烏龜。

下面的過程可以用「原樣」你的代碼(只是把它從你的setup程序創建龜完全按照你做之前之後):

to assign-factions 
    let angle 360/factions 
    foreach n-values factions [?] [ 
    ask patch 0 0 [ 
     sprout 1 [ 
     set heading ? * angle 
     ask turtles in-cone max-pxcor angle [ set faction ? + 1 ] 
     die 
     ] 
    ] 
    ] 
end 

的代碼是非常簡單的,除了可能更晦澀的n-values。如果您願意,可以用while循環代替它,但實際上它只是從0factions

這裏是你用5個派系得到什麼:

factions

+0

那是偉大的,感謝所有幫助薩科 –