2015-06-01 69 views
0

我想給基於代理停留的補丁值和滑塊參數的代理提供收入屬性。Netlogo基於補丁和滑塊參數的值給出代理的屬性值

to setup 
    if pcolor = yellow 
    [sprout-resident 1 
    [set color sky 
    set shape "default" 
    set size 1 
    set-income 
    ask patch-here [set pcolor brown 
       set landuse "resident" 
       set is-bought? TRUE 
       set owner [who] of myself]]] 
    end 

    to set-income 
    ifelse land-price > buycapabilityhigh(this is the slider parametr) [set income "high"] 
    [ifelse land-price < buycapabilitymiddlle and land-price > buycapabilitylow [set income "middle"] 
    [if land-price < buycapabilitylow [set income "low"]]] 
    end 

所以我想基於地價在代理保持和在此基礎上,通過滑塊設置buycapability給代理類中間高收入低。請幫助給出建議來編寫這種機制。謝謝

+0

1.你遇到什麼問題?當你問烏龜[套餐收入]時會發生什麼? 2.只要使用一系列if語句;不需要嵌套。 – Alan

+0

同意,你的代碼看起來很好。如果您遇到一些困難或問題,您需要告訴我們它是什麼。 –

+0

oh ya ..我很抱歉沒有詳細說明,當我運行此代碼時,此設置收入使代理的所有收入屬性變得「低」。即使代理人補丁的強悍地價大於代理人的購買能力,也應該使收入屬性爲「高」,收入屬性保持「低」。所以,我不知道我是否必須更具體或重申在這個收入中,我的意思是那個補丁存在於其上(我正在嘗試這種替代方法,但還沒有找到正確的代碼/我不知道如何編碼它)或什麼..請幫助給這個建議.. –

回答

-1

變量land-price是一個補丁的屬性嗎? 如果是,那麼我認爲問題出在你的set-income函數中。

您應該在if語句中使用[land-price] of patch-here而不是land-price

此外,就像艾倫說的那樣。你可以使用一系列if語句。 它是這樣去的

if [land-price] of patch-here > ... [...] 
if [land-price] of patch-here < ... and ... [...] 
if [land-price] of patch-here < ... [...] 
+0

是的......土地價格是補丁的屬性,購買能力是代理的屬性。關於購買能力怎麼樣?我需要添加一些東西嗎? 我試過你的建議,但它似乎仍然沒有工作。 '設置收入 ifelse [地塊價格]補丁在這裏> buycapabilityhigh [設置收入「高」] [補丁的地點價格在這裏 buycapabilitylow [set income「middle」] [如果[patch-here]的地價]

+0

對不起,我的意思是buycapability是滑塊參數,它將決定代理人的屬性收入高,中或低,取決於代理商所處的地價,較低,介於或高於某個購買能力參數值。 –

+0

我也使用過if語句,不是ifelse,但結果仍然相同。請幫助找到我的錯誤。 –