如何在NetLogo中记录代理的到货订单?

如何在NetLogo中记录代理的到货订单?,netlogo,Netlogo,在我的模型中,我想要一个海龟品种(食物)来记录许多其他品种(捕食者)到达的顺序 到目前为止,我有一段代码告诉我谁在那里,但没有保留到达顺序: if ticks = day-length [ print [who] of turtles-here with [who != [who] of myself] 如有任何建议,我们将一如既往地不胜感激。如果能提供更好的方法,我确实已经启动并运行了RNetLogo 谢谢 获取我想要的数据的一个丑陋的方法是使用两行独立的代码 ask other tur

在我的模型中,我想要一个海龟品种(食物)来记录许多其他品种(捕食者)到达的顺序

到目前为止,我有一段代码告诉我谁在那里,但没有保留到达顺序:

if ticks = day-length [
print [who] of turtles-here with [who != [who] of myself]
如有任何建议,我们将一如既往地不胜感激。如果能提供更好的方法,我确实已经启动并运行了RNetLogo

谢谢

获取我想要的数据的一个丑陋的方法是使用两行独立的代码

  ask other turtles-here [show got-here]

  foreach   sort-by < [got-here]  of turtles-here with [shape = "default"]
  [
  show   ? 
  ]]
在这里询问其他海龟[show got here]
使用[shape=“default”]
[
显示
]]

您可以将它们保存为食物拥有的列表。但我认为最好的办法是让捕食者记住

捕食者有这样的行动吗

if food-here != nobody and been-here = 0 [set got-here ticks]     
  ask food [print [who] of predators-here with-min[got-here]]
到过这里的人最少,到过那里的时间最长

像这样检查一下

if food-here != nobody and been-here = 0 [set got-here ticks]     
  ask food [print [who] of predators-here with-min[got-here]]
这是假设您正在使用记号

显示列表

foreach sort-by < [got-here]
  [
  show ? ;; 
  ]
foreach排序依据<[got here]
[
显示
]
或者最好列个清单

let here-list
foreach sort-by < [got-here]
  [
  set  here-list lput ? here-list
  ]
让我们在这里列出
foreach排序依据<[到达此处]
[
在此处设置列表lput?在此处设置列表
]

首先,如果每个食物都要记录自己的列表,您需要在
食物自身的
代理变量列表中添加一个变量(比如“捕食者顺序”)。创建食物时,将列表初始化为空(
设置捕食者顺序[]
)。不要在列表中使用
who
。而是将代理添加到列表中。如果看不到周围的代码,就很难获得正确的语法,但它将类似于:

ask this-food
[ set predator-order lput myself predator-order ]

我几乎同意你的建议。带有min[got here]的
只给了我一个值,即最小值。我可以用
show sort by<[got here]of turtles here
打印正确的顺序,但是如果我丢失了它们的身份,我将扩展我的答案来解决这个问题谢谢你的回复。如果我使用您的“显示列表”如下:
如果有?海龟在此[if ticks=day length-10[foreach sort by<[got here]of turtles here with[shape=“default”][show?]]]
代码再次以正确的顺序给出了蜱虫,但没有给出代理人的身份/身份。如果我使用who而不是?,请尝试使用who代替?它给出了一个世界卫生组织食品编号列表,其长度与以ITA为食的动物数量相同。作为一般性评论,使用
who
几乎总是使NetLogo代码更复杂,而不是更简单。相反,直接比较和操纵海龟
这里的海龟和[who!=[who]我自己]
减少到
这里的海龟和[self!=我自己]
或者只是
这里的其他海龟
。嗨,我尝试了这个,得到了“没有我自己可以参考的代理”。正如我所说,如果没有看到周围的代码,我就无法正确地获取语法。然而,我假设你有类似于询问捕食者[移动、进食和寻找食物….
的东西,然后在该代码中的某个地方,你有捕食者正在要求它找到的食物将自己(捕食者)添加到列表中。
我自己
指询问食物的捕食者。。。