2015-05-05 34 views
3

我想有一个领域有许多不同的补丁,它有一些属性(例如随机(但固定)食物量)以及名称或一个ID。 也就是说,左上角的补丁应该有名字“1”(或者什么是可行的),但是不允许与其他人共享这个名字!NetLogo - 如何给每个补丁一个独特的身份/ plabel /名称

感谢您的帮助,我找不到任何东西。

回答

3

补丁坐标已经作为一个唯一的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

+0

非常感谢!这正是我开始所需要的。 – Marco

+1

@Marco那你应该接受答案! :) – user299791

1

关于为每个补丁分配“唯一标识”,我的建议是... 不要这样做。修补程序已通过它们的组合pxcorpycor唯一标识。所以如果你想访问左上角的补丁,你可以将其称为patch -16 16

你也应该知道,补丁(以及海龟和链接)的引用可以直接存储在变量中。因此,无论何时您想要存储“修补程序ID”,都应该存储对修补程序的引用。例如,如果你想存储在一个全局变量左上角补丁:

globals [ top-left-patch ] 

to setup 
    set top-left-patch patch min-pxcor max-pxcor 
end 

min-pxcormin-pycor将报告-1616,或什么是适合你的世界的维度。)

然后后来,你可以直接引用存储补丁:

ask top-left-patch [ set pcolor red ] 

但是,如果你确实想仍然创造一个id,布莱恩的回答是要走的路。

相关问题