2015-05-05 35 views
3

我想有一個領域有許多不同的補丁,它有一些屬性(例如隨機(但固定)食物量)以及名稱或一個ID。 也就是說,左上角的補丁應該有名字「1」(或者什麼是可行的),但是不允許與其他人共享這個名字!NetLogo - 如何給每個補丁一個獨特的身份/ plabel /名稱

感謝您的幫助,我找不到任何東西。

回答

3

補丁座標已經作爲一個唯一的ID。因此,patch 7 10是指具有pxcor 7和pycor 10的補丁。

這就是說,如果你想一個整數ID,你可以這樣做:

patches-own [ id ] 

... 

(foreach (sort patches) (n-values count patches [?]) [ 
    ask ?1 [ set id ?2 ] 
]) 

sort patches創建補丁列表,左上角片是第一,並繼續從左正確,從上到下。

n-values count patches [?]創建一個數字列表,從0到count patches - 1

+0

非常感謝!這正是我開始所需要的。 – Marco

+1

@Marco那你應該接受答案! :) – user299791

1

關於爲每個補丁分配「唯一標識」,我的建議是... 不要這樣做。修補程序已通過它們的組合pxcorpycor唯一標識。所以如果你想訪問左上角的補丁,你可以將其稱爲patch -16 16

你也應該知道,補丁(以及海龜和鏈接)的引用可以直接存儲在變量中。因此,無論何時您想要存儲「修補程序ID」,都應該存儲對修補程序的引用。例如,如果你想存儲在一個全局變量左上角補丁:

globals [ top-left-patch ] 

to setup 
    set top-left-patch patch min-pxcor max-pxcor 
end 

min-pxcormin-pycor將報告-1616,或什麼是適合你的世界的維度。)

然後後來,你可以直接引用存儲補丁:

ask top-left-patch [ set pcolor red ] 

但是,如果你確實想仍然創造一個id,布萊恩的回答是要走的路。

相關問題