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

时间:2016-12-22 05:07:35

标签: netlogo

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

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

现在我想询问列表第二个元素位置的补丁,将其颜色更改为红色。

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

这给出了一个错误,即补丁需要一个数字而不是一个列表或块。如何让NetLogo明白(第1项coor)是一组两个数字?

还有其他方法吗?我也试过使用' table'为此扩展,但同样的问题即将来临。

1 个答案:

答案 0 :(得分:0)

只需使用合适的记者:

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

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