Netlogo:有计划地移动海龟并可视化它们的路径
Netlogo: move turtles in a planned way and visualize their paths
我在硕士论文中的一个关键主题上需要一些帮助。
想象一下 2 种乌龟,乌龟车和乌龟房。
所以乌龟车被放置在世界的特定区域,乌龟屋被随机放置。
主要objective龟车走遍所有房屋return到起始位置
案例研究示例:
2车5房
假设我定义了以下路径向量:
路线:[0 2 3 1 4, 5 5 6 5 6]
第一部分随机放置要访问的房屋,然后是相应的汽车将进行访问,即汽车 5 访问房屋 0 2 和 1,汽车 6 访问房屋 3 和 4。
我使用每只海龟的 ID,具体取决于使用的海龟总数。
也就是说,使用给定的路线矢量,可以自动查看我的汽车以访问它们各自的所有房屋(按照它们插入矢量的顺序,如上所述)。
我的问题是,知道了vector route,如何让小车选择去哪里return到起点。
如果有人能帮助我,我将不胜感激。
这里是一些代码,用于获取输入路线向量并为每辆车创建路线。车房配对取自。这是解释最清楚的形式,如果你能从那个答案构造filter
版本,那就更优雅了。
globals [ route-vector ]
breed [cars car]
cars-own [ route ]
to setup
clear-all
set route-vector [ 5 10 15 20 25 0 1 2 0 1 ]
create-turtles 3 [ setxy random-xcor random-ycor ]
make-routes
reset-ticks
end
to make-routes
let houses sublist route-vector 0 (length route-vector / 2 )
let carlist sublist route-vector (length route-vector / 2 ) (length route-vector)
ask cars [ set route [] ]
(foreach carlist houses
[ [the-car the-house] ->
ask cars with [who = the-car] [ set route lput the-house route ]
]
)
end
请问一个关于使用路线变量实际沿路径移动的单独问题。但是请尝试自己动手,这样您就可以展示您的代码并描述需要修复的地方。
我在硕士论文中的一个关键主题上需要一些帮助。
想象一下 2 种乌龟,乌龟车和乌龟房。 所以乌龟车被放置在世界的特定区域,乌龟屋被随机放置。
主要objective龟车走遍所有房屋return到起始位置
案例研究示例: 2车5房
假设我定义了以下路径向量: 路线:[0 2 3 1 4, 5 5 6 5 6]
第一部分随机放置要访问的房屋,然后是相应的汽车将进行访问,即汽车 5 访问房屋 0 2 和 1,汽车 6 访问房屋 3 和 4。
我使用每只海龟的 ID,具体取决于使用的海龟总数。 也就是说,使用给定的路线矢量,可以自动查看我的汽车以访问它们各自的所有房屋(按照它们插入矢量的顺序,如上所述)。
我的问题是,知道了vector route,如何让小车选择去哪里return到起点。
如果有人能帮助我,我将不胜感激。
这里是一些代码,用于获取输入路线向量并为每辆车创建路线。车房配对取自filter
版本,那就更优雅了。
globals [ route-vector ]
breed [cars car]
cars-own [ route ]
to setup
clear-all
set route-vector [ 5 10 15 20 25 0 1 2 0 1 ]
create-turtles 3 [ setxy random-xcor random-ycor ]
make-routes
reset-ticks
end
to make-routes
let houses sublist route-vector 0 (length route-vector / 2 )
let carlist sublist route-vector (length route-vector / 2 ) (length route-vector)
ask cars [ set route [] ]
(foreach carlist houses
[ [the-car the-house] ->
ask cars with [who = the-car] [ set route lput the-house route ]
]
)
end
请问一个关于使用路线变量实际沿路径移动的单独问题。但是请尝试自己动手,这样您就可以展示您的代码并描述需要修复的地方。