Netlogo 我怎样才能使海龟尽可能靠近某个区域?

Netlogo 我怎样才能使海龟尽可能靠近某个区域?,netlogo,Netlogo,我有一个蓝色的补丁,我想把海龟移到离它最近的空补丁。我能想到的唯一方法是在循环中使用radius,每次增加一个radius大小,但是有更好的方法吗?这是一个相当模糊的问题标题。代码目前没有测试“空”条件最近的空应该类似于报告min[这里没有海龟][与我保持距离]@NicolasPayette同意。(但这只会影响测试)根据问题描述,我假设海龟比补丁少。我不理解你的回答;在我看来,最近的空补丁将是检查最近补丁是否确实为空的正确位置。当我运行你的代码时,红色补丁有时会被占用,我认为这违反了要求。@Ni

我有一个蓝色的补丁,我想把海龟移到离它最近的空补丁。我能想到的唯一方法是在循环中使用radius,每次增加一个radius大小,但是有更好的方法吗?

这是一个相当模糊的问题标题。代码目前没有测试“空”条件
最近的空
应该类似于
报告min[这里没有海龟][与我保持距离]
@NicolasPayette同意。(但这只会影响测试)根据问题描述,我假设海龟比补丁少。我不理解你的回答;在我看来,
最近的空补丁
将是检查最近补丁是否确实为空的正确位置。当我运行你的代码时,红色补丁有时会被占用,我认为这违反了要求。@NicolasPayette抱歉,我误解了你之前的评论,因为我不知道我不知何故发布了以前版本的答案。修正了。啊,这是有道理的!无关:请问为什么在
#patch
参数中使用
#
作为前缀?我假设这是你的惯例,但我发现它令人困惑,因为
非常强烈地唤起一个数字,这是一个代理引用。为什么不
目标补丁
或类似的东西呢?
globals [bluey]

to setup
  ca
  ask one-of patches [set pcolor blue set bluey self]
  ask n-of 250 patches [sprout 1]
end

to-report nearest-empty [#patch]
  report min-one-of 
         [other (patches with [not any? turtles-here])] of #patch
         [distance #patch]
end

to test
  setup
  ;the following fails if all patches occupied
  ;(can add a test for nobody)
  ask nearest-empty bluey [set pcolor red]
end