我想要具体的' who'补丁的(标签)。我附上了一张照片。我怎么设置它?是设置手册'谁'补丁号码?或者还有其他办法吗?
由于
答案 0 :(得分:2)
如果您不关心示例中的特定“螺旋”序列,您可以使用利用NetLogo默认补丁排序顺序的Luck解决方案的变体:
patches-own [ id ]
to setup
clear-all
(foreach (sort patches) (range count patches) [ [p n] ->
ask p [ set id n ]
])
ask patches [ set plabel id ]
end
或者您可以使用与sort-by
指定的略有不同的排序顺序。
话虽如此,我不知道您的要求是什么,但我会质疑为补丁设置特定ID的想法。 NetLogo中的大多数内容都可以在不引用代理ID的情况下完成。 who
数字本身就是很旧的NetLogo版本的遗留物,几乎不会在现代代码中使用。
如果您想引用特定的补丁,请按其坐标引用它,例如:patch -2 4
。
如果您想存储补丁以供将来参考,请存储对补丁本身的引用,而不是某种ID。例如:ask turtles [ set my-patch one-of patches ]
。
答案 1 :(得分:1)
补丁没有who
,因为这是一个仅限龟的变量;补丁有坐标。但是,您可以为修补程序提供自己的ID号并使用它。如果您只需要5 x 5世界(如图片所示),您可以在Netlogo代码中完成您想要的任务。例如,请参阅下面的代码(并注意我更改了世界设置to those seen here)。但是,如果您想要一个包含更多补丁的世界,我建议您从文件中读取所需的补丁值。
globals [
idlist
ordered_patches
]
patches-own [
id
]
to setup
set idlist [ 9 10 11 12 13 24 1 2 3 14 23 8 0 4 15 22 7 6 5 16 21 20 19 18 17 ]
set ordered_patches sort patches
end
to assign-ids
( foreach ordered_patches idlist [
[ o_patch _id ] ->
ask o_patch [
set id _id
]
]
)
ask patches [
set plabel id
]
end