【问题标题】:Problems with ticks and death of mobile agents in NetLogoNetLogo 中移动代理的滴答声和死亡问题
【发布时间】:2021-06-24 18:55:37
【问题描述】:

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

  1. 乌龟的身份
  2. 海龟所在补丁的 x 坐标
  3. 海龟所在补丁的 y 坐标
  4. 滴答数

但是,如果我有一行代码,蜜蜂在达到一定数量的资源时死亡(例如,当它达到数量 > = a 2 的资源时,乌龟就会死亡。为了简化我在此处放置的代码达到刻度 >=2 乌龟死亡)。问题是在第 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

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    此问题的答案已包含在您之前收到的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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-18
      • 2020-07-02
      • 1970-01-01
      • 2020-05-20
      • 1970-01-01
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多