设置特定补丁标识符
Setting specific patch identifier
我想要 patches.I 的特定 'who'(标签)附上图片。我该如何设置它?是补丁号的设置手册'who'吗?或者还有其他方法吗?
谢谢
picture for patch identifiers
补丁没有 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
如果您不关心示例中的特定 "spiral" 序列,您可以使用 Luck 解决方案的变体,它利用了 NetLogo 的默认补丁排序顺序:
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 ]
。
我想要 patches.I 的特定 'who'(标签)附上图片。我该如何设置它?是补丁号的设置手册'who'吗?或者还有其他方法吗?
谢谢
picture for patch identifiers
补丁没有 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
如果您不关心示例中的特定 "spiral" 序列,您可以使用 Luck 解决方案的变体,它利用了 NetLogo 的默认补丁排序顺序:
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 ]
。