2013-03-03 60 views
1

我正在實施一個演講廳的撤離模擬。我有兩種類型的學生坐在桌子上,額外的學生誰隨機分配在課堂內。所以我創建了兩個滑塊爲了分配在期望的數字的學生。滑塊被命名爲額外學生standarstudents。當模擬開始,我想所有的學生(無論是在表和羣衆演員的學生)去最近的出口(我有兩個出口)。所以我實施了只有學生正在休息下來:Netlogo代理錯誤

ask standarstudents [ 
ifelse pycor > 0 
[ set target one-of nexits] 
[ set target one-of sexits] 
face target 
] 

Nexits是北出口。 性交是南出口。

的問題是,我得到這個錯誤,我可以繼續前進:

ASK預期輸入是代理人或agentset但得到的數字3代替。 錯誤而觀察者運行ASK(來自該用戶是挑滑塊數3導出) 通過按鈕「設置」

org.nlogo.nvm.ArgumentTypeException調用過程SETUP 稱爲:ASK預期輸入是一個代理或代理組,但取而代之的是數字3。

有什麼想法?

+1

此外,我不知道你是否知道這一點,但'pycor'報告龜的座標_patch_,這將與_turtle_所在的座標不同,如果它不在一個補丁的中心。 'ycor'爲'0.5'的烏龜將擁有'pycor = 0',因此即使烏龜稍高於原點,pycor> 0也將是錯誤的,這可能是或不是你想要的。 – 2013-03-03 16:06:12

+1

@NicolasPayette:ycor爲0.5的龜的pycor爲1,而不是0. – 2013-03-18 16:41:32

+1

@SethTisue我的錯誤 - 感謝您指出。 「0.5」被取整了,所以這是一個不好的例子。一個正確的將是'0.49'的'ycor',它將給出一個'0'的'pycor'(所以總的觀點仍然是......) – 2013-03-18 19:12:37

回答

2

好吧,如果你有滑塊命名爲extrastudentsstandarstudents,這兩個變量是數字值代表你想怎麼每種很多學生,學生自己。就像錯誤信息所述,ask原語與代理商一起使用,代表「您問的是誰」。

你真的創建了你的學生嗎?將滑塊放在界面上本身不會做任何事情。我建議重新命名滑塊像num-extrastudentsnum-standarstudents,然後用這樣的代碼來初始化人口:

breed [ extrastudents extrastudent ] 
breed [ standarstudents standarstudent ] 

to setup 
    create-standarstudents num-standarstudents 
    create-extrastudents num-extrastudents 
end 

然後,你已經發布的代碼會工作,因爲extrastudentsstandarstudents品種的海龜 ,因此,代理商。