2017-03-28 127 views
1

我正在创建关于动物园的Netlogo模型。我需要我的动物园客人(多只海龟)沿着从动物园入口处开始的每24个蜱(在我的模型中1个蜱是1小时)开始的循环路径。它必须移动笼子里的动物,因为我不能让我的客人进入动物区域。路径不一定要快或者最短,我只需要乌龟不要偏离它。我不想用GIS来创建一个通路。在Netlogo中为海龟创建特定路径

我的世界的尺寸是-30到30在两个方向,不包裹。

笼下落说明如下:从您的评论

patches-own [ tigerhabitat? 
       flamingohabitat? 
       monkeyhabitat? 
       hippohabitat? 
       giraffehabitat? 
      ] 

to create-habitats 
    ask patches with [ pxcor < -12 and pycor > 23 ] 
    [ set tigerhabitat? true 
    set pcolor green ] 

    ask patches with [ pxcor > 20 and pycor > 20 ] 
    [ set hippohabitat? true 
    set pcolor blue ] 

    ask patches with [ pxcor > 18 and pycor < 15 and -1 < pycor ] 
    [ set flamingohabitat? true 
    set pcolor 96 ] 

    ask patches with [ pxcor > -10 and pxcor < 10 and pycor < 10 and -10 < pycor ] 
    [ set monkeyhabitat? true 
    set pcolor green ] 

    ask patches with [ pxcor < -12 and pycor < -20 ] 
    [ set giraffehabitat? true 
    set pcolor 67 ] 

end 
+0

客人是否需要沿着路径只移动一个方向? –

+0

他们可以向一个方向移动(向前)。 – paula

+0

你希望他们遵循的路径在哪里?当我创造栖息地时,我看到了笼子;你能给出更多的细节:你尝试过什么,为什么它不做你想要的?如果您只需要了解从哪里开始,可以查看模型库中包含的一些模型。例如,[Surface Walking 2D](http://ccl.northwestern.edu/netlogo/models/Sur​​faceWalking2D),Wall Following示例或Look Ahead模型。 –

回答

1

Paula-我想我更好地了解了一点,谢谢。控制海龟可以移动的一种简单方法是使用逻辑运算符排除他们在走路时“考虑”的补丁。对于你想要的基本(非路径,但是)版本,你可以告诉海龟,他们只能在不是笼子的补丁上移动。您可以设置一个仅用于修补程序的变量,明确说明修补程序是否被关闭,但在您的示例中,上面所有非修补程序修补程序都是黑色的 - 您可以使用该变量告诉海龟,只有它才应该走到路径上是黑色的。例如,可以按上面添加的程序以下代码:

to setup 
    ca 
    reset-ticks 
    crt 10 [ 
    setxy -25 0 
    ] 
    create-habitats 
end 


to go 
    exclude-cage-walk 
    tick 
end 


to exclude-cage-walk 
    ask turtles [ 
    rt random 30 - 15 
    let target one-of patches in-cone 1.5 180 with [ pcolor = black ] 
    if target != nobody [ 
     face target 
     move-to target 
    ] 
    ] 
end 

你可以看到,前进之前,每个龟评估是否补丁已经选择了move-to是黑色的,如果是不是黑色,乌龟不会移动那里。当然,你必须修改这个来适应你的需要,让海龟在单向电路中行走,但这是一种限制海龟运动的简单方法。

+0

非常感谢你卢克C! – paula