通过存储在列表中的坐标访问补丁

Accessing patch through coordinates stored in a list

我有一个存储补丁坐标列表的列表。

let coor [ [0 1] [ 1 0] [1 -1] ]

现在我想请求列表中第二个元素所在位置的补丁将其颜色更改为红色。

ask patch (item 1 coor) [ set pcolor red ] 

这给出了补丁需要数字而不是列表或块的错误。如何让 NetLogo 理解 (item 1 coor) 是一组两个数字?

还有其他方法可以解决这个问题吗?我也尝试过为此使用 'table' 扩展名,但也出现了同样的问题。

只需使用合适的记者:

to-report patch-at-xy [#xy]
  let _x item 0 #xy
  let _y item 1 #xy
  report patch _x _y
end

这需要对上面的代码进行微小的更改:

to test
  let coor [ [0 1] [ 1 0] [1 -1] ]
  ask patch-at-xy (item 1 coor) [ set pcolor red ] 
end

也就是说,您几乎肯定应该存储补丁列表而不是它们的坐标。