如果你想使用 who 号码,你需要隐藏海龟而不是杀死它们。如果这让事情变得尴尬,因为你发现自己需要参考 eg turtles with [not hidden?]
,然后考虑制作两个品种,称它们为actives
和inactives
或类似的东西,然后在隐藏乌龟时这样做hide-turtle set breed inactives
。然后,您总是可以将活动海龟集称为actives
。当有人加入模拟时,如果有的话,给他们一只不活动的乌龟,让它去做show-turtle set breed actives
。
或者,如果您决定不使用 who 号码,您将需要一个新的 turtle 变量,比如说您调用它id
。当你制作一只新乌龟时,做set id count turtles - 1
。当乌龟死了,你需要重新分配新的身份证号码,这样就不会再有空隙了。你使用什么方案真的很重要吗?你需要在乌龟的旧号码和它的新号码之间有任何特殊的关系吗?我可以想到几种可能的不同方法。这是一个按 who 编号升序分配 id 编号的方法:
let whos sort [who] of turtles
ask turtles [ set id position who whos ]
PS但我不得不怀疑,所有这些编号真的有必要吗?在普通的 NetLogo 模型中,几乎不需要使用 who 号码来处理任何事情。几乎总是有更简单的方法。为什么你觉得你需要在这个模型中使用编号?也许你确实需要它,但我至少有点怀疑。