Netlogo 我如何让海龟根据自己的特征按顺序移动?

Netlogo 我如何让海龟根据自己的特征按顺序移动?,netlogo,Netlogo,我试图让海龟根据他们的分数(0-1连续评分)移动,这样分数越低,移动越早。不幸的是,我完全没能想出有效的办法。制作海龟的代码是: breed[a] breed[s] turtles-own [score] set population 100 to make_turtles create-s (population / 2) [set color blue set size 3 setxy random max-pxcor random max-pycor

我试图让海龟根据他们的分数(0-1连续评分)移动,这样分数越低,移动越早。不幸的是,我完全没能想出有效的办法。制作海龟的代码是:

breed[a]
breed[s]

turtles-own [score]
set population 100

to make_turtles
 create-s (population / 2)
    [set color blue
      set size 3
      setxy random max-pxcor random max-pycor
      set score random-normal 0.75 0.1
      if score > 1 [set score 0.9999999999]
      if score < 0.5 [set score 0.50000001]
      ]
create-a (population / 2)   
 [set color red
      set size 3
      setxy random max-pxcor random max-pycor
      set score random-normal 0.25 0.1
      if score < 0 [set score 0.00000000000001]
      if score > 0.5 [set score 0.499999999999]
      ]
end
品种[a]
繁殖[繁殖]
海龟拥有[分数]
设定人口100
做乌龟
创建-s(总体/2)
[设置颜色为蓝色
3号套餐
setxy random max pxcor random max pycor
设置分数随机正常值0.75 0.1
如果分数>1[设置分数0.9999999]
如果分数<0.5[设置分数0.50000001]
]
创建-a(人口/2)
[设置颜色为红色
3号套餐
setxy random max pxcor random max pycor
设置分数随机正常值0.25 0.1
如果分数<0[设置分数0.00000000000001]
如果分数>0.5[设置分数0.499999999]
]
结束

我让他们正常移动,我只需要他们按照“得分”的顺序移动。提前感谢您提供的任何提示

您可能希望根据海龟的得分对它们进行排序,并在结果列表上迭代,要求每只海龟移动

 foreach sort-on [score] turtles [ ask ? [ move]]

成功了!但它提出了一个新的问题:我把代码放在我的go命令中,海龟们按照正确的顺序移动,但是现在代码运行起来太长了(可能是因为它正在重新计算移动顺序)。有没有一种方法可以在setup命令中将列表放入一个列表,可能是一个agentset(?),以减少处理要求?您不想使用agentset,因为这样会删除排序。相反,在setup命令中,为按分数排序的结果指定一个全局变量。在go命令中,说foreach[询问?[移动]]。这只是在分数不随时间变化的情况下。这似乎确实有帮助,但运行代码的时间仍然比以前长得多。我将尝试优化其余部分,看看会发生什么。谢谢我意识到我问错了问题。我在这里转载:并提供了一个通用代码示例,可以根据任何人的目的进行修改。