我有一个存储补丁坐标列表的列表。
let coor [ [0 1] [ 1 0] [1 -1] ]
现在我想询问列表第二个元素位置的补丁,将其颜色更改为红色。
ask patch (item 1 coor) [ set pcolor red ]
这给出了一个错误,即补丁需要一个数字而不是一个列表或块。如何让NetLogo明白(第1项coor)是一组两个数字?
还有其他方法吗?我也试过使用' table'为此扩展,但同样的问题即将来临。
答案 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
那就是说,你几乎肯定应该存储一个补丁列表而不是它们的坐标。