NetLogo允许海龟只在街道上移动/特定颜色的补丁?

NetLogo允许海龟只在街道上移动/特定颜色的补丁?,netlogo,Netlogo,我是NetLogo的新手,我只想让我的乌龟在街上移动(补丁为pcolor=grey),但我不知道怎么做。我的模型中有一条街道,海龟应该在上面移动。我已经看过libarry的模型了,但是找不到有用的东西 这是我的密码: extensions [gis] globals [streets-dataset roads] to setup clear-all gis:load-coordinate-system (word "data/" projection &q

我是NetLogo的新手,我只想让我的乌龟在街上移动(补丁为pcolor=grey),但我不知道怎么做。我的模型中有一条街道,海龟应该在上面移动。我已经看过libarry的模型了,但是找不到有用的东西

这是我的密码:

extensions [gis]
globals [streets-dataset 
  roads] 
to setup
  clear-all
   gis:load-coordinate-system (word "data/" projection ".prj")
  set streets-dataset gis:load-dataset "data/Test4.shp"
  gis:set-world-envelope (gis:envelope-of streets-dataset)

  ask patches gis:intersecting streets-dataset
  [
    set pcolor grey]
  set roads patches with [pcolor = grey]
  create-turtles 5 [spawn-cars]
  reset-ticks
end

to spawn-cars
  move-to patch -336 226
end

to go
  ask turtles [if any? patches with [pcolor = grey] [set heading towards one-of patches with[pcolor = grey] fd 1]]
end

您可以尝试设置可访问的面片,即灰色的pcolor面片,然后将海龟限制为仅可访问的面片。

对于这种情况,模型库中最有用的示例不是最明显的命名;请查看模型库代码示例部分中的
look-Ahead示例
模型,了解您所追求的几乎是什么的示例,只需稍加修改即可。“向前看示例”中的海龟可以而不是移动到他们世界中的蓝色区域-您可能会想出如何反转该示例中的代码(下面引用的相关部分)以使海龟留在您的道路上等

ifelse [pcolor] of patch-ahead 1 = blue
  [ lt random-float 360 ]   ;; We see a blue patch in front of us. Turn a random amount.
  [ fd 1 ]                  ;; Otherwise, it is safe to move forward.