2014-05-12 53 views
0

我試圖在代理之間建立連接。我創造了3種代理商:公司,官員和公民(每個品種有10個代理商),我需要創建配對。每一對涉及:一個公司,一個公民和一個官員(代理商隨機選擇)。我還需要所有的代理商都會創建配對。如何在netlogo中創建對

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

;;;然後我需要創建對,如果對一種藥是公司的話,公司可以dicide賄賂或沒有,如果沒有,企業獲得30,官員的收入0和公民收入10:

to go 
if ticks mod 3 = 0 
    [ 
    ask turtles 
    [ 
    if breed = firms 
    [ 
    if bribe? = false 
    [ 
     set budget budget + 30 
     output-print (word " firms " budget) 
     ask other turtles 
     [ 
     if breed = officers [ set budget budget + 0 
           output-print (word " officers " budget)] 
     if breed = citizens [ set budget budget + 10 
           output-print (word " citizens" budget)]  
      ] 
      stop 
     ] 
     ] 
     ] 
     ] 

;;然後去其他蜱,公民和官員決定接受賄賂或懲罰賄賂受賄....

+0

嗨Erika,我們可以幫助你的更簡單的方法,它提供了你的情況的簡短代碼... – delaye

+0

好的....這裏是: – Erika

+0

你想在什麼樣的基礎上形成對?你想要形成所有可能的配對,還是要重複形成一對隨機對,或者是什麼? –

回答

0

你說「每對涉及:一個公司,一個公民和一個官員」。我會稱之爲三胞胎,或者只是一個組合而不是一對; 「對」總是意味着兩個,而不是三個。

這裏形成所有可能的三胞胎一些示例代碼,然後做了接近你的描述:

ask officers [ 
    let this-officer self 
    ask citizens [ 
    let this-citizen self 
    ask firms [ 
     if bribe? [ 
     set budget budget + 30 
     ask this-citizen [ 
      set budget budget + 10 
     ] 
     ] 
    ] 
    ] 
] 

我無法理解你說你正在試圖做的一切。但希望上面的代碼是密切的,並說明嵌套ask的原則,以形成所有可能的組合。