Netlogo海龟跳过特定补丁

Netlogo海龟跳过特定补丁,netlogo,Netlogo,我正试图指示海龟们参观所有的绿地 有一个行为我无法理解:如果原点位置=中心(请参见0,0蓝色的屏幕截图),则始终避免使用面片0,0,如果原点位置=角,则使用左下角 为什么会这样?我在这里犯了什么错误 ;;========================================================== globals [ memory target ] patches-own [visit-counter] ;;===========================

我正试图指示海龟们参观所有的绿地

有一个行为我无法理解:如果原点位置=中心(请参见0,0蓝色的屏幕截图),则始终避免使用面片0,0,如果原点位置=角,则使用左下角

为什么会这样?我在这里犯了什么错误

;;==========================================================
globals [
  memory
  target
]
patches-own [visit-counter]

;;==========================================================
to setup
  ca
  resize-world -6 6 -6 6
  set-patch-size 40
  create-turtles 1 [
    set memory (list patch-here)
    setxy random-pxcor random-pycor
    set size 1
    set color blue
  ]

  ask patches [if random 100 < 40 [set pcolor green]]
  ask patch 0 0 [set pcolor green]

  ask patches [set visit-counter 0]  
  reset-ticks
end

;;==============================================

to go

  ask turtles [choose-target]
  tick
  if ticks > 500 [stop]
end

;;==============================================
to choose-target
  pd

  ;; set of unvisited patches
  let unvisited patches with [not member? self [memory] of myself]

  ;; set of green patches that are not visited
  let targets patches with [(member? self unvisited) and (pcolor = green)]

  ;; select target and move there
  set target one-of targets with-min [distance myself]

  ifelse target != nobody [
    face target
    fd 1
    set visit-counter (visit-counter + 1)
    set memory lput patch-here memory
  ]
  [die
  ]
end
==========================================================
全球的[
记忆
目标
]
个人[访问柜台]
;;==========================================================
设置
ca
调整世界大小-6-6
设置补丁大小为40
创造海龟1[
设置内存(此处列出修补程序)
setxy random pxcor random pycor
1号套餐
设置颜色为蓝色
]
询问补丁[如果随机100<40[设置pcolor绿色]]
询问修补程序0[将pcolor设置为绿色]
询问修补程序[设置访问计数器0]
重置滴答声
结束
;;==============================================
外带
询问海龟[选择目标]
打上钩
如果滴答声>500[停止]
结束
;;==============================================
选择目标
pd
;; 未访问的补丁集
让未访问的补丁与[不是成员?自我[记忆]我自己]
;; 未访问的绿色修补程序集
让目标面片具有[(成员?自身未访问)和(pcolor=绿色)]
;; 选择目标并移动到那里
使用最小[距离]设置目标之一的目标
如果有其他目标!=没人[
面对目标
fd 1
设置访问计数器(访问计数器+1)
在此处设置内存lput补丁内存
]
[死
]
结束

初始化变量“memory”时,您已设置了
内存(此处列出补丁)
。此时,海龟正坐在补丁0上,所以原始补丁在内存中。您用于查找目标的代码不包括内存中已有的目标
让未访问的修补程序使用[not member?self[memory]of my]
。因此,它没有资格被选为目标。

谢谢!我明白这一点,但为什么它只出现在补丁0,0上呢?当你创建一个海龟而不指定位置时,它是在补丁0上创建的(实际上是在xcor=0,ycor=0),所以补丁0 0在开始时总是
patch here