2015-02-06 80 views
1

我有一個netlogo問題,我似乎無法找到解決方案,但它感覺非常基礎。 我有兩種類型的品種:Netlogo一對一關係

breed [individuals individual] 
breed [cars car] 

我想創建從一個單獨的鏈接到一輛車。所以,它是一個一對一的關係。我用這個代碼來做到這一點:

to setup-individuals 
    create-individuals individuals-number [ 
    set ID 2 
    set shape "person" 
    set color yellow 
    setxy random-xcor random-ycor 
    set activity "" 
    set activity_time 0 
    let rand random 2 
    ifelse rand = 0 
    [ 
     set owns-car false 
     ] 
    [ 
     set owns-car true 
     create-link-to one-of cars ;; here is the issue 
     ] 
    ] 
end 

的問題是,如果我使用「create-link-to one-of cars」有連接到一臺車以上的人,但我想每一個人都有一個獨特的汽車。當嘗試使用以下命令時:「create-link-to one-of cars with [my-in-links = 0]」它給了我下面的錯誤:「CREATE-LINK-TO預期的輸入是一隻烏龜,但取而代之的是NOBODY。」我嘗試了這個命令的許多變體,但它不起作用。

回答

3

您試圖解決的create-link-to one-of cars with [my-in-links = 0]是正確的路徑。但是,如果您查看NetLogo詞典,您將看到my-in-links返回代理集,而不是給出該代理集成員數的整數。所以你需要比較空的而不是比較數字0.

這是在語法上最接近你的代碼:create-link-to one-of cars with [count my-in-links = 0]

你真正想要的,雖然是什麼東西更像create-link-to one-of cars with [not any? my-in-links]

+0

創建鏈接到汽車行駛[不屬於任何一個嗎? my-in-links] 做了工作 thnx隊友 – arianit 2015-02-06 14:31:07

+1

'my-in-links = nobody'不起作用 - 'nobody'不等於空的代理集。 '沒有任何......'解決方案也是我所建議的。 – 2015-02-06 17:11:29