NetLogo中的勾选和移动代理死亡问题 [英] Problems with ticks and death of mobile agents in NetLogo

查看:10
本文介绍了NetLogo中的勾选和移动代理死亡问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个我不知道如何解决的问题。我有将以下信息导出到.csv文件的代码:

  1. 乌龟的身份
  2. 乌龟所在地块的x坐标
  3. 乌龟所在地块的y坐标
  4. 勾号
但是,如果我有一行代码,当蜜蜂达到一定的资源量时(例如,当它达到一个资源量&>=a2时),海龟就会死亡。为了简化代码,我在这里放了一段代码,即当到达滴答时,乌龟就死了)。问题是,在记号2处,海龟死亡,最后一个记号(记号2)的pxcor和pycor值不会导出。因此,就像检查海龟一样,海龟死了,我们看不到最后更新的扁虱信息。

有人知道我如何获得此信息吗?

如果我不能恰当地表达自己。我可以重写我的问题或尝试重写简化的代码。

提前谢谢

to setup
  clear-all
  reset-ticks
  resize-world 0 3 0 3
  ask patches [ sprout 1 [ setup-turtles ] ]
  let pcolors [ ]
  set pcolors [ 1 10 ]
  ask patches [ set pcolor item (random 2) pcolors ]
end

to setup-turtles
  set size 0.5
  pen-down
end

to go
  move
  output
  tick
end


to move
  ask turtles [
    rt random 360
    fd 1
    if ticks >= 2 [ die ]
  ]
end

to output
  file-open "test.csv"
  foreach sort turtles
  [
    t ->
    ask t
    [
     file-print ( word self  " , "  pxcor " , " pycor " , " ticks )
    ]
  ]
  file-print ""  ;; blank line
  file-close
end

推荐答案

此问题的答案已包含在您以前收到的in this answer中。

您必须以要求海龟在die之前执行output的方式排列命令。

例如

if ticks >= 2 [output die]

to go
  move
  tick
end

to move
  ask turtles [
    rt random 360
    fd 1
    output
    it ticks >= 2 [die]
  ]
end

或任何其他安排,你要求你的乌龟在你杀死它们之前做一些事情,因为它们一旦死了就不能做事情了。

这篇关于NetLogo中的勾选和移动代理死亡问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆