Netlogo 如何识别海龟

Netlogo 如何识别海龟,netlogo,Netlogo,如何识别海龟,以便我能让它做点什么 比如说 create-turtles 3 set turtle-star one-of turtles ask turtles[ if turtle != turtle-star [make-other-turtles-but-turtle-star-do-some-dirty-things]] 这是否可能,就像一个数字或另一个唯一的属性,例如: idTurtle 或者我怎样才能分辨海龟 我想我可以做一个叫做 IsTurtleStar?. 但这似乎是

如何识别海龟,以便我能让它做点什么

比如说

create-turtles 3
set turtle-star one-of turtles

ask turtles[ if  turtle != turtle-star [make-other-turtles-but-turtle-star-do-some-dirty-things]]
这是否可能,就像一个数字或另一个唯一的属性,例如:

idTurtle
或者我怎样才能分辨海龟

我想我可以做一个叫做

IsTurtleStar?.
但这似乎是在浪费记忆


您是如何做到的?

我相信您希望使用海龟的who(海龟变量),这是一个唯一的标识符

因此,用你的话来说:

create-turtles 3
set turtle-star [who] of one-of turtles

ask turtles with [who != turtle-star][make-other-turtles-but-turtle-star-do-some-dirty-things]

我相信您希望使用海龟的who(海龟变量),这是一个唯一的标识符

因此,用你的话来说:

create-turtles 3
set turtle-star [who] of one-of turtles

ask turtles with [who != turtle-star][make-other-turtles-but-turtle-star-do-some-dirty-things]

mattsap是正确的,您可能正在查找
who
turtle属性。但是,如果您发现自己使用的是
who
号码,您通常应该重新考虑使用NetLogo的方法。直接使用
agentsets
几乎总是比依赖标识符更好

看看这个完整的模型。你会看到,每当我需要乌龟时,我只是把它称为“乌龟星”

to testme
  clear-all
  create-turtles 3
  [ setxy random-xcor random-ycor
    set color blue
  ]
  let turtle-star one-of turtles
  ask turtle-star [ set size 3 ]
  ask turtle-star
  [ ask other turtles
    [ set color red
    ]
  ]
end

但是,如果您需要海龟星跨程序存在,您可能需要一个全局变量(并使用
set
而不是
let
)来存储海龟(而不是它的who编号)或者,您需要您的建议,将旗帜作为海龟自己的属性。

mattsap是正确的,您可能正在寻找海龟属性。但是,如果您发现自己使用的是
who
号码,您通常应该重新考虑使用NetLogo的方法。直接使用
agentsets
几乎总是比依赖标识符更好

看看这个完整的模型。你会看到,每当我需要乌龟时,我只是把它称为“乌龟星”

to testme
  clear-all
  create-turtles 3
  [ setxy random-xcor random-ycor
    set color blue
  ]
  let turtle-star one-of turtles
  ask turtle-star [ set size 3 ]
  ask turtle-star
  [ ask other turtles
    [ set color red
    ]
  ]
end

但是,如果您需要海龟星跨程序存在,您可能需要一个全局变量(并使用
set
而不是
let
)来存储海龟(不是它的who编号),或者需要您建议将一个标志作为海龟自己的
属性。

,你能在回答中解释为什么前者在NetLogo中不是一个好方法吗?
数字是由NetLogo自动分配的,因为海龟是被创建的,不受程序员的控制。在开发模型时,您可能会添加更多的海龟,并更改它们的创建顺序,这会使您的
who
数字有所不同。如果一只乌龟死了,你试图引用它,NetLogo会抛出一个错误。你也会得到类似于
问一只海龟[who=][]
的代码结构,而不是更清晰的
问我的海龟[]
。注意,你可以用
问海龟星[问其他海龟[设置红色]]
替换
问海龟星[设置红色]
。我更喜欢后者,但我认为这主要是一个品味问题。我明白了,你能在回答中解释为什么前者在NetLogo中不是一个好方法吗?
数字由NetLogo自动分配,因为海龟是由程序员创建的,不受程序员控制。在开发模型时,您可能会添加更多的海龟,并更改它们的创建顺序,这会使您的
who
数字有所不同。如果一只乌龟死了,你试图引用它,NetLogo会抛出一个错误。你也会得到类似于
问一只海龟[who=][]
的代码结构,而不是更清晰的
问我的海龟[]
。注意,你可以用
问海龟星[问其他海龟[设置红色]]
替换
问海龟星[设置红色]
。我更喜欢后者,但我想这主要是口味的问题。嗯。。。是的,但这可能是个坏主意。。。了解使用
who
number的缺点……好吧。。。是的,但这可能是个坏主意。。。了解使用
who
数字的缺点。。。