Netlogo 如何杀死除一只海龟以外的所有海龟?
我正在做一个竞赛模型。它的功能是海龟在网格上水平移动,从xcor-13开始,到xcor-13,移动速度为 不断变化,当一只海龟达到xcor=13时,所有其他海龟(除了第一只穿过的海龟)都会死亡 我该怎么让其他海龟死呢?Netlogo 如何杀死除一只海龟以外的所有海龟?,netlogo,Netlogo,我正在做一个竞赛模型。它的功能是海龟在网格上水平移动,从xcor-13开始,到xcor-13,移动速度为 不断变化,当一只海龟达到xcor=13时,所有其他海龟(除了第一只穿过的海龟)都会死亡 我该怎么让其他海龟死呢? 第一个答案对我没有帮助,请其他人回答你想做的事情没有多大意义。发帖时,请确保问题为回答您的问题提供了更好的背景 我对你问题的解释是,汽车根本不重要。你想知道的是,当一只海龟越过终点线时,你会杀死所有其他海龟 这样做,我可能会给每只海龟一个名字或标签的属性。将它们全部存储在一个数组
第一个答案对我没有帮助,请其他人回答你想做的事情没有多大意义。发帖时,请确保问题为回答您的问题提供了更好的背景 我对你问题的解释是,汽车根本不重要。你想知道的是,当一只海龟越过终点线时,你会杀死所有其他海龟 这样做,我可能会给每只海龟一个名字或标签的属性。将它们全部存储在一个数组中 然后,如果海龟越过终点线,将所有海龟从阵列中移除,除了
if turtle.name == turtle[i].name.
希望有帮助。下次请再清楚一点。你需要一种方法来识别活海龟并杀死其他海龟。要做到这一点,您可以编写大量if语句,但这看起来很可怕
if(larry.coordinates == 13){
kill(tom);
kill(harry);
}
最好的选择是阅读如何创建数组。将其存储在数组中。相信我,数组非常简单。你可以让获胜者问其他海龟[死]
to setup
clear-all
reset-ticks
;resize-world min-pxcor max-pxcor min-pycor max-pycor
resize-world -15 20 0 3
set-patch-size 15
;set-patch-size size
create-turtles 10
[setxy -13 1 set heading 90 set shape "car" wait 0.3]
ask patch -13 2 [Set plabel "Start" set pcolor 110] ; just for visualization
ask patch 13 2 [Set plabel "END" set pcolor 110]
end
to go
ifelse count turtles > 1
[
ask turtles
[Race]
]
[stop]
tick
end
to Race
fd random 5
if xcor >= 13 [ set size 2 ask other turtles [die] ]
end
这是一个示例屏幕截图
我真的很低的例子,所以有另一种方法可以通过拥有多行汽车来改善比赛的可视化:
resize-world -15 20 0 5
set-patch-size 15
create-turtles 20
[set xcor -13 set ycor one-of [0 1 2 3 4 ] set heading 90 set shape "car" ]
ask patch -13 5 [Set plabel "Start" set pcolor 110]
ask patch 13 5 [Set plabel "END" set pcolor 110]
我对其进行了编辑,以使其更有意义。我还不知道如何使用数组,还有其他的方法吗?当你使用xcor=13时,一些海龟可能会跳起来越界,所以我认为使用xcor>=13更安全。第一个答案没有什么帮助?如果“问其他海龟[死]”的话,我不知道你在找什么。我真的不知道你到底在找什么!如果你能解释得更多,我可能会改变我的答案:)如果你的问题是我的完整示例可能会让人难以理解,只需使用“If xcor=13[询问其他海龟[死亡]”
resize-world -15 20 0 5
set-patch-size 15
create-turtles 20
[set xcor -13 set ycor one-of [0 1 2 3 4 ] set heading 90 set shape "car" ]
ask patch -13 5 [Set plabel "Start" set pcolor 110]
ask patch 13 5 [Set plabel "END" set pcolor 110]