如何让海龟避免NETLOGO中的补丁?

时间:2016-11-29 22:24:00

标签: netlogo

我的经纪人是船在水上移动,周围和水中的一些地方是一些需要不可能通过的土地。我正在努力构思如何在netlogo中告诉代理这个信息。

我已经分配了

patches-own
[DEPTH
PASSABLE?
]

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

如何告诉乌龟没有越过或占用PASSABLE补丁? =进行随机漫步搜索

时为FALSE
patches in-radius VISION with [DEPTH = 10]

抱歉缺乏可重复的例子,但这是一个比任何事情更具概念性的问题。如果需要,我将粗略化一个简单的示例模型。

1 个答案:

答案 0 :(得分:1)

当你的经纪人即将向前迈出一步时,你可以让他们检查一下是否可以,然后让他们选择一个新的目的地,如果他们要去干地

如果需要,您可以使用Patch-Ahead或In-Cone执行此操作。用它来设置目的地。

像:

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

要选择可能的目的地,您可以使用龟的当前标题:

to pick-destination
  let destination patch-ahead 1
end