乌龟的鉴别方法

How to identify a turtle

如何识别乌龟以便我可以要求它做某事。

例如

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?.

但这似乎是在浪费内存。

你是怎么做到的?

我相信您希望使用 turtle 的 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]

mattsap 是正确的,您可能正在寻找 who turtle 属性。然而,如果您发现自己使用 who 数字,您通常应该重新考虑您在 NetLogo 中的方法。直接使用 agentsets 而不是依赖标识​​符几乎总是更好。

看看这个完整的模型。你会看到我只是在需要时将乌龟称为 'turtle-star'。

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

但是如果你需要 turtle-star 跨过程存在,你要么需要一个全局变量(并使用 set 而不是 let)来存储海龟(而不是它的编号)或者您需要将标志作为 turtles-own 属性的建议。