首页 > 解决方案 > 如何创建一个表来知道哪些海龟访问了世界上的每个补丁?

问题描述

我想消除疑虑并寻求帮助。

我有一个 600X600 补丁的封闭世界。每个补丁生成一个海龟(使用发芽命令)。每只海龟都会进行一系列移动并为其家乡补丁返回一个值。我想得到以下结果:知道世界上每个补丁中有哪只海龟,并将结果以表格形式导出为 .csv

我为此创建了一个列表。但是,NetLogo 运行了一段时间,然后它关闭并没有完成模型。所以我认为如果我创建一个表它应该可以工作。问题是:创建表会解决模型不运行的问题吗?如果是这样,我如何通过在 .csv 中从该表生成输出来创建表?但是,我还没有找到一个 NetLogo 命令,我可以创建一个表来调整我的代码。

任何提示都非常受欢迎。我感谢关注

globals [ edge-size output-turtle-visits ]
patches-own [ turtle-visits ]

to setup
  ca
  random-seed 1
  set edge-size 599
  set-patch-size 1.2
  resize-world 0 edge-size 0 edge-size
  let pcolors []
  set pcolors [ 85 95 ]
  ask patches [ sprout 1 ]
  ask patches [
    set turtle-visits n-values count turtles [0]
    set pcolor item (random 2) pcolors
  ]
  reset-ticks
end

to go
  ask turtles [
    rt random 360
    fd 1    
  ]
ask patches [
    foreach [who] of turtles-here [ id ->
      let current-num-visits item id turtle-visits
      set turtle-visits replace-item id turtle-visits (current-num-visits + 1)
    ]      
  ]     
end

to output
  file-open ( output-turtle-visits )
  file-print ( word "id_turtle;my_xcor;my_ycor;turtle_visits" )
  foreach sort patches
  [
    t ->
    ask t
    [

     file-print ( word self " ; " xcor " ; " ycor " ; " turtle-visits )
    ]
  ]
  file-print ""  ;; blank line
  file-close
end

标签: netlogo

解决方案


推荐阅读