最简单的方法:
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 ]
无论如何,除非你做这个有很多,我会与第一去方法。
这里的命名对我来说似乎有点混乱,因为'patch-at'使用相对坐标,但是您的过程使用绝对坐标。请注意,您的过程的相对坐标版本已经存在;它被称为'at-points'。 –