根据补丁特征要求乌龟转向其他目标
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 示例。如果我正确理解你的问题,它就是这样做的。
我卡在我的代码的这一部分了。
- 我想把我的乌龟移到我的控制之下。我的意思是当它第一次到达一所房子时,它必须转向并移动到另一所房子。
在此代码中,它会将 -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 示例。如果我正确理解你的问题,它就是这样做的。