2014-03-19 57 views
2

我是netlogo的新手,我真的需要一些幫助。我的問題是:我試圖用3套代理進行模擬:公司,官員和公民。問題是:我有10個人/龜,我需要將他們分成3組,但我也需要比初始時每頭烏龜可以選擇他想要屬於哪組代理人...... .......所以,每次我點擊設置底部,代理人都可以改變他們的角色。 感謝您的幫助。埃裏卡 我的代碼是:如何更改代理角色

breed [firms firm] 
breed [ officers officer] 
breed [ citizens citizen] 

to setup 
    clear-all 
    create-turtles num-of-firms[ 
    set color blue 
    set xcor random-xcor 
    set ycor random-ycor 
    ] 
    create-turtles num-of-officers [ 
    set color green 
    set xcor random-xcor 
    set ycor random-ycor 
    ] 
    create-turtles num-of-citizens [ 
    set color white 
    set xcor random-xcor 
    set ycor random-ycor 
    ] 
set-default-shape turtles "person" 
reset ticks 

回答

3

每個龜的NetLogo有一個內置的breed variable,您可以使用動態改變烏龜的品種。

如果你想創建的代理一些總數(如100),並有他們每個人隨機選擇哪個品種屬於,你可以這樣做:

breed [ firms firm] 
breed [ officers officer] 
breed [ citizens citizen] 

to setup 
    clear-all 
    set-default-shape turtles "person" 
    create-turtles 100 [ 
    set xcor random-xcor 
    set ycor random-ycor 
    ] 
    ask turtles [ 
    set breed one-of (list firms officers citizens) 
    ] 
    ask firms [ set color blue ] 
    ask officers [ set color green ] 
    ask citizens [ set color white ] 
    reset-ticks 
end 
+0

如果我想,每個品種(公司,官員和公民)將擁有相同數量的代理商,我應該在代碼中添加什麼? – Erika

+0

那麼你可以使用'create-turtles'的['create-'](http://ccl.northwestern.edu/netlogo/docs/dictionary.html#create-breeds)變體。沒有必要讓龜自己選擇它們應該屬於哪個品種。這就是你想要的嗎? –

+0

是的,那是......它完全可以工作 – Erika