我想有一个领域有许多不同的补丁,它有一些属性(例如随机(但固定)食物量)以及名称或一个ID。 也就是说,左上角的补丁应该有名字“1”(或者什么是可行的),但是不允许与其他人共享这个名字!NetLogo - 如何给每个补丁一个独特的身份/ plabel /名称
感谢您的帮助,我找不到任何东西。
我想有一个领域有许多不同的补丁,它有一些属性(例如随机(但固定)食物量)以及名称或一个ID。 也就是说,左上角的补丁应该有名字“1”(或者什么是可行的),但是不允许与其他人共享这个名字!NetLogo - 如何给每个补丁一个独特的身份/ plabel /名称
感谢您的帮助,我找不到任何东西。
补丁坐标已经作为一个唯一的ID。因此,patch 7 10
是指具有pxcor
7和pycor 10
的补丁。
这就是说,如果你想一个整数ID,你可以这样做:
patches-own [ id ]
...
(foreach (sort patches) (n-values count patches [?]) [
ask ?1 [ set id ?2 ]
])
sort patches
创建补丁列表,左上角片是第一,并继续从左正确,从上到下。
n-values count patches [?]
创建一个数字列表,从0到count patches - 1
。
关于为每个补丁分配“唯一标识”,我的建议是... 不要这样做。修补程序已通过它们的组合pxcor
和pycor
唯一标识。所以如果你想访问左上角的补丁,你可以将其称为patch -16 16
。
你也应该知道,补丁(以及海龟和链接)的引用可以直接存储在变量中。因此,无论何时您想要存储“修补程序ID”,都应该存储对修补程序的引用。例如,如果你想存储在一个全局变量左上角补丁:
globals [ top-left-patch ]
to setup
set top-left-patch patch min-pxcor max-pxcor
end
(min-pxcor
和min-pycor
将报告-16
和16
,或什么是适合你的世界的维度。)
然后后来,你可以直接引用存储补丁:
ask top-left-patch [ set pcolor red ]
但是,如果你确实想仍然创造一个id,布莱恩的回答是要走的路。
非常感谢!这正是我开始所需要的。 – Marco
@Marco那你应该接受答案! :) – user299791