如何识别乌龟

时间:2019-05-05 22:23:43

标签: 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?.

但这似乎是对内存的浪费。

你如何做到的?

2 个答案:

答案 0 :(得分:2)

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)来存储乌龟(而不是谁的编号),或者需要您建议将标记作为turtles-own属性。

答案 1 :(得分:0)

我相信您正在寻找使用乌龟的who(turtle变量),这是唯一的标识符。

所以,按照您的说法:

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]