2016-11-29 179 views
0

我的代理人是在水上移动的小船,周围和水中的一些地方都是不可能通过的土地。我正在努力构思如何在netlogo中告诉代理这些信息。如何让海龟在NETLOGO中避免修补程序?

我分配

patches-own 
[DEPTH 
PASSABLE? 
] 

ask patches with [DEPTH > 0] [set PASSABLE? FALSE] 

我如何告诉龟不能跨过或占用与差强人意的补丁? = FALSE同时从事其他随机游走搜索

patches in-radius VISION with [DEPTH = 10] 

对于缺乏可重复的例子感到抱歉,但这是一个比任何事情都更概念化的问题。如果需要的话,我会粗略推出一个简单的示例模型。

回答

1

当你的经纪人是要向前走一步,你可以让他们检查,如果他们可以,然后让他们选择一个新的目标,如果他们要到陆地

您可以Patch-Ahead或在做到这一点 - 如果你想要的话。用它来设置目的地。

财产以后这样的:

to walk 
"pick destination" 
    ifelse destination = water [fd 1] [walk] 
end 

挑选可能的目标是什么,你用龟的当前航向是什么样的:

to pick-destination 
    let destination patch-ahead 1 
end 
+0

@安德鲁Yoak,感谢您的建议,但我猜我很困惑的是如何查询目的地。海龟正在进行随机行走(基本上是:右随机浮动275向前随机浮动5),所以我正在努力想出一种方法让乌龟通过随机游走选择一个点,然后评估它就像你说的那样。有任何想法吗? – Jesse001

+1

你可以使用patch-head和let命令暂时将某些东西定义为“目的地”。我会在答案中澄清这一点 –

相关问题