从文件导入海龟位置

Import turtles position from a file

早上好: 我目前正在开发一个 netlogo 程序,其中有一个包含海龟坐标的文件,我需要导入该文件,以便每只海龟都采用它在文件中的位置。文件如下:

 9.220967873876688 30.6518906113243

 -11.68237910031844 -11.246301104888516

 2.5642482677264593 -1.6456061198786152

 24.89458409582633 22.473096145446608

 33.714972669018216 -17.295603130774897

 10.347090714821402 13.476191522153966

 3.881957027308774 -18.70063134965679

 -21.711570773095524 -25.038263308838506

 -20.649763022691737 28.674828042635635

 -5.107177490557619 21.26440747439797

 -6.29157511915799 -32.595514274136164

 19.134302620042213 -26.443694241313267

 -27.207781014142487 -3.48941202705942

 18.198639754306242 -9.202785605985115

 -12.82510430838797 5.818222632445828

 -28.761569626881588 13.521815467262908

 34.93451881825029 -34.49959417879696

 27.234341179357532 5.506201903765271

第一列是x轴,第二列是y轴。世界维度是 y 轴 (-35,35) 和 x 轴 (-35,35)。在这个例子中有 20 个坐标。所以我想从这个文件中导入,根据文件坐标生成 20 只海龟。

感谢您的帮助。

假设坐标文件是一个文本文件,其值由空格和回车分隔 returns,从问题看来,与文件相关的原语就足够了。

有两种可能的情况。

你提前知道会有多少只乌龟的坐标

在这种情况下,只需使用 file-openfile-readfile-close:

to setup
  clear-all
  
  file-open "coordinates.txt"
  
  create-turtles 18 [
   setxy file-read file-read 
  ]
  
  file-close
end

(请注意,您的文件示例包含 18 对坐标,而不是 20 对)

你事先不知道会有多少只海龟的坐标

在这种情况下,使用 file-at-end? 添加一个 while 循环:

to setup
  clear-all
  
  file-open "coordinates.txt"
  
  while [not file-at-end?] [
   create-turtles 1 [
     setxy file-read file-read
    ] 
  ]
  
  file-close
end