2014-12-13 102 views
4

我有兩個龜 - 賣方和買方在一個補丁,他們有形狀"face happy"。 但是在運行安裝程序的界面上,如果在一個補丁中有兩個龜,我只能看到其中的一個。 我的問題是,我怎麼編碼它,以便看到他們兩個。如果它不可能至少在一些補丁中看到另一個補丁中的一個代理。如何讓兩個龜在一個補丁中都可見?

這裏是我的代碼:

所有的
ask sellers 
     [move-to one-of patches with [not any? turtles-here]] 

    ask buyers 
     [move-to one-of patches with [not any? buyers-here]] 
    ask buyers [if any? sellers-here [set shape "face happy"]] 
    ask buyers [if not any? sellers-here [set shape "face sad"]] 
    ask buyers [if any? sellers-here [set color 67]] 
    ask sellers [if any? buyers-here [set shape "face happy"]] 
    ask sellers [if not any? buyers-here [set shape "face sad"]] 
    ask sellers [if any? buyers-here [set color 137]] 

回答

3

首先,請注意,你實際上可以告訴我們,如果兩者都從你的臉和顏色提示存在。如果你想看到兩者,你需要設置透明的顏色,或者偏移位置,或者兩者兼而有之。例如,

ask buyers [ 
    move-to one-of patches with [not any? buyers-here] 
    ifelse (any? sellers-here) [ 
    set shape "face happy" 
    set color [255 0 0 125] 
    fd 0.45 
    ][ 
    set shape "face sad" 
    ] 
] 
+0

即使從補丁中心開始,「fd 0.5」可能會將龜帶到不同的補丁。我建議一個較小的值。 – 2014-12-13 18:28:40

+0

如果標題是隨機的,應該幾乎是不可能的,但好點。編輯。 – Alan 2014-12-14 18:01:39

3

兩個海龜貼片的中心假設補丁:

to spread-out 
    ask patches with [count turtles-here = 2] 
    [ask one-of turtles-here [ 
     fd .25 
     ask one-of other turtles-here [face myself fd -0.25]]] 
end 
3

另一種選擇是讓一種龜比其他較小的,並確保較小的一個是永遠在上面。例如,如果您爲買賣雙方使用"circle"形狀,則賣方可以使用set size 0.4。然後,在移動買家之後移動賣家,或者在顯示相同的補丁後買賣商之後,讓每個賣家進行展示。如果您在所有海龜移動後爲所有賣家設置了顯示屬性,例如顏色,形狀或大小,這應該會導致賣家出現在買家之上。

另一種選擇是,如果你的海龜小於補丁,將使用補丁顏色來傳遞信息。例如,只要同一個補丁上有兩個海龜,就可以更改補丁顏色。或者,您可以確保一種烏龜始終處於最佳狀態(例如,買方),並且每當補丁上有賣方時(即使沒有買方在場),也總是將補丁顏色設置爲特殊值。

相關問題