Netlogo 通过列表中存储的坐标访问面片

Netlogo 通过列表中存储的坐标访问面片,netlogo,Netlogo,我有一个列表,它存储了补丁的坐标列表 let coor [ [0 1] [ 1 0] [1 -1] ] 现在我想让列表第二个元素位置的补丁将其颜色更改为红色 ask patch (item 1 coor) [ set pcolor red ] 这会导致一个错误,即修补程序需要一个数字,而不是一个列表或块。如何让NetLogo理解(第1项coor)是一组两个数字 还有别的办法吗?我也尝试过使用“table”扩展来解决这个问题,但同样的问题也出现了 只需使用适当的报告器: to-report

我有一个列表,它存储了补丁的坐标列表

let coor [ [0 1] [ 1 0] [1 -1] ]
现在我想让列表第二个元素位置的补丁将其颜色更改为红色

ask patch (item 1 coor) [ set pcolor red ] 
这会导致一个错误,即修补程序需要一个数字,而不是一个列表或块。如何让NetLogo理解(第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

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

只需使用适当的报告器:

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

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

一个解决方法是将第一个和第二个坐标存储在单独的列表中,例如x_cor和y_cor。询问补丁(项目1 x_cor)(项目1 y_cor)[设置颜色红色]一个解决方法是将第一个和第二个坐标存储在单独的列表中,说出x_cor&y_cor.询问补丁(项目1 x_cor)(项目1 y_cor)[设置颜色为红色]