2015-07-18 60 views

回答

3

最簡單的方法:

ask (patch-set patch 1 1 patch 1 -1 patch -1 1 patch -1 -1) [ set pcolor grey ] 

(以下如果這是從觀察者(即,它不被任何代理人都跑已響應賽斯的評論:)

更新),可以使用at-points像這樣:

ask patches at-points [[1 1] [1 -1] [-1 1] [-1 -1]] [ set pcolor grey ] 

然而,如果這個代碼是由龜或補丁程序運行,座標表將被相對於治療劑。所以patches at-points [[1 0] [0 1]]會在右側給出補丁,並在當前代理上面給出補丁。您可以輕鬆地使用絕對座標的版本:

to-report patches-at-coords [ coordinates ] 
    report (patch-set map [patch first ? last ?] coordinates) 
end 

,然後用它像這樣:

ask patches-at-coords [[1 1] [1 -1] [-1 1] [-1 -1]] [ set pcolor grey ] 

無論如何,除非你做這個有很多,我會與第一去方法。

+0

這裏的命名對我來說似乎有點混亂,因爲'patch-at'使用相對座標,但是您的過程使用絕對座標。請注意,您的過程的相對座標版本已經存在;它被稱爲'at-points'。 –