2011-12-08 94 views
8

我有兩個代理組。是否有功能發現:NetLogo兩個代理組操作

  1. 的是在兩個(路口)目前代理的agentset
  2. 的存在於一個,而不是其他

我發現代理的agentset很難用手工實現這一點,特別是當它需要一個三重ask

比較理想的使用內將類似於with語法:

let cross set1 and-in set2 
let uniq set1 with [color = red] not-in set2 

簡單的事情,如「代理組X中的代理A?有問題

回答

11

對於第一個使用turtle-set原語。對於第二個,您需要member?基元,該基元也適用於座席集。因此:

to setup 
    ca 
    create-turtles 10 [set color red] 
    create-turtles 10 [set color blue] 
    let red-ones turtles with [color = red] 
    let blue-ones turtles with [color = blue] 

    ;join 2 agent sets 
    let joinset (turtle-set red-ones blue-ones) 
    show joinset 

    let even-ones (turtles with [who mod 2 = 0]) 
    ;subtract even-ones from red-ones 
    let subtractset red-ones with [not member? self even-ones] 
    show subtractset 
end 
+1

我沒有意識到'[有]'可以收到一個「記者」。我的第一個問題是找到一個十字路口,而不是一個工會,但看到你對第二個問題的回答,我猜它會像'紅色'那樣簡單[會員?自我偶像]。謝謝! – Mikhail

+0

謝謝。我有同樣的問題,並沒有意識到可以在'with'構造中使用'self'。起初我嘗試了'?',但得到了一個錯誤信息,然後沒有其他想法如何繼續。 – RussAbbott