根据补丁特征要求乌龟转向其他目标

Ask turtle to turn face other target depending on patch features

我卡在我的代码的这一部分了。

在此代码中,它会将 -10 5 红色补丁和房屋形状移动到此处。 现在,我怎么告诉这只乌龟''you are here and you must go there'' !?

(我用了红色补丁,因为我试图根据补丁移动乌龟但找不到任何解决方案。)

breed [cities city]
breed [flag person]

to setup
    clear-all
    set-default-shape cities "house"

    create-flag 1
    [ set SIZE 6 set shape "by" setxy -5 3 set HEADING 0 ]

    create-flag 1
    [ set SIZE 6 set shape "sel" setxy 12 5 set HEADING 0 ]

    create-cities 1
    [set color yellow set SIZE 2 setxy 8 2]

    create-cities 1
    [ set color yellow set SIZE 2 setxy -10 5]

    ask patch -10 5 [set pcolor red]
end

to go
    ask flag with [ shape = "by" ] [ facexy -10 5 forward 1 set HEADING 0 ]
end

更新

我从@jenB 的回答中理解并尝试了这段代码,但它还没有按照我的意愿移动。感谢您的关注,但这里有两个问题,我试图用这张图片来解释。

我在这里提出了一个新问题:

在 NetLogo 词典中查找 turtles-on。从你的另一个问题,我知道你正试图让你的旗帜从一个房子顺序移动到另一个房子。一种方法是让标志存储其目标,并在达到目标时简单地更改目标。类似这样的东西(这不会起作用,因为它不完整)

breed [cities city]
breed [flag person]
flag-own
[ target
]

to setup
  clear-all

  create-flag 1
  [ set size 6
    set shape "by"
    setxy -5 3
    set target patch -10 5
    face target
  ]

  < other commands >
end

to go
  ask flag-on patch -10 5
  [ set target patch <next place you want it to go>
    face target
  ]
  ask flag with [ shape = "by" ]
  [ forward 1 ]
end

我也摆脱了你所有的 set heading 命令。命令 face 转动乌龟,使 forward 朝向乌龟面对的方向。命令 set heading 转动乌龟,使 forward 处于航向给定的方向(例如 set heading 90 将使其向右移动,如果被告知前进)。

查看 NetLogo 模型库代码示例部分中的 Move Towards Target 示例。如果我正确理解你的问题,它就是这样做的。