现在我正在使用
ask patch 1 1 [set pcolor grey]
ask patch 1 -1 [set pcolor grey]
ask patch -1 1 [set pcolor grey]
ask patch -1 -1 [set pcolor grey]
有没有办法在NetLogo中用一行代码设置多个补丁的补丁颜色?
最佳答案
最简单的方法:
ask (patch-set patch 1 1 patch 1 -1 patch -1 1 patch -1 -1) [ set pcolor grey ]
(以下内容已根据 Seth 的评论进行更新:)
如果这是从观察者运行的(也就是说,它不是由任何代理运行的),您可以使用 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 ]
无论如何,除非你经常这样做,否则我会选择第一种方法。
关于netlogo - 有没有办法在NetLogo中用一行代码设置多个补丁的补丁颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31496372/