在 NetLogo 中将海龟移向两种不同颜色的补丁

Moving turtles towards two different colors of the patch in NetLogo

我有一个基本的 NetLogo 问题。

我想对以下内容进行编码:

  1. 小乌龟问小方块是什么颜色如果是绿色,它就可以在绿方块上行走。

我知道这是一道NetLogo的基础题。但是,我正在尝试并出现一些错误,例如:MOVE-TO expected input to be an agent but got NOBODY instead

有人可以帮助我了解我的问题所在,或者提供任何建议甚至模型供我探索吗?欢迎任何帮助。谢谢

globals [ edge-size ]

to setup
    clear-all
      set edge-size 10
      set-patch-size 20
      let pcolors []
      set pcolors [135 55 105 85]
      ask patches [
        set pcolor item (random 4) colors
        ]
      crt 1 [
        set size 1
        set color black
        ;pen-down
        ]
     reset-ticks
     end

  to go
   ask turtles [
    if pcolor = green ;; if own pcolor patch = green
     [ move-to one-of patches with [ pcolor = "green" ] ]    
 end

这段代码 move-to [ veg ] of patch-under-me 表明您对 NetLogo 的思维方式有几个根本性的误解。我建议您多做一些教程并查看 NetLogo 内置的模型库以找到与您想要做的相似的模型。您还需要构建更小的部分,并在移动到下一个部分之前让一个部分正常工作。

move-to [ veg ] of patch-under-me 有什么问题?

  1. [ veg ] of patch-under-me 是一个变量,其值类似于粉红色或绿色。所以你说 'move to green'
  2. 而且,它返回的颜色是乌龟现在所站位置的颜色,而不是你想让它去的地方

您可能想要更像:

move-to one-of patches with [veg = "green"]

所以回到基础。只有两种颜色(比如红色和蓝色)并移动海龟,试图进入红色区域。在做任何其他事情之前先完成这项工作。现在只有几个红色补丁,你的代码还能用吗?然后你可以开始添加一堆不同的条件和颜色