如何通过Netlogo上的全局变量控制海龟

如何通过Netlogo上的全局变量控制海龟,netlogo,Netlogo,我在Netlogo上做了一个项目,创建了一个迷宫,我想对它进行编码,这样如果移动的海龟在另一个地方撞上了一只不移动的海龟(代表类似障碍物的东西),那么它就会打开一个我将创建的“小游戏”。然而,当我加入更多的海龟,并在我的按钮中使用ask turtle 0,以便其他海龟不会移动并保持障碍时,一切都开始滞后。如何使用全局变量来解决问题 这是使用两个品种的同一型号: breed [Walls wall] patches-own [is-wall] breed [Humans person] Human

我在Netlogo上做了一个项目,创建了一个迷宫,我想对它进行编码,这样如果移动的海龟在另一个地方撞上了一只不移动的海龟(代表类似障碍物的东西),那么它就会打开一个我将创建的“小游戏”。然而,当我加入更多的海龟,并在我的按钮中使用ask turtle 0,以便其他海龟不会移动并保持障碍时,一切都开始滞后。如何使用全局变量来解决问题

这是使用两个品种的同一型号:

breed [Walls wall]
patches-own [is-wall]
breed [Humans person]
Humans-own [target]

to setup
  clear-all
  set-default-shape Walls "tile brick"
  set-default-shape Humans "person"
  set-patch-size 25


  create-humans 1 [
    set heading 90 
    set color white 
    move-to patch -5 -5 
    set target one-of patches with [not any? walls-here]
    ask target [set pcolor green]]
  set-walls
  reset-ticks
end

to set-walls
  ask n-of 10 patches with [not any? humans-here] 
  [
    set pcolor red
    sprout-walls 1 
    [ 
      set color brown
    ] 
  ]
end

to go
  ask humans [ 

    ifelse pcolor != green 
      [
        ifelse [pcolor] of patch-ahead 1 != red
        [
          Your-Move-Function
        ]
        [
          Your-Bounce-Function 
        ]

        leave-a-trail  
      ]
      [
        stop

      ]


  ]


  tick
end


to Your-Move-Function
  let t target 
  face min-one-of all-possible-moves [distance t]
  fd 1
end

to Your-Bounce-Function 
  let t target 
  face min-one-of all-possible-moves [distance t]
end

to-report all-possible-moves
  report patches in-radius 1 with [not any? walls-here and distance myself  <= 1 and distance myself  > 0 and plabel = "" ]
end

to leave-a-trail
  ask patch-here [set plabel ticks]
end
繁殖[墙]
自己的[是墙]
繁殖[人]
人类拥有[目标]
设置
清除所有
设置默认形状墙“瓷砖砖”
设置默认形状“人”
设置补丁大小为25
创造人类1[
设置标题90
将颜色设置为白色
移动到补丁-5-5
用[此处没有任何墙]设置一个补丁的目标
询问目标[设置颜色为绿色]]
筑墙
重置滴答声
结束
筑墙
问n-10个补丁[这里没有人]
[
设置颜色为红色
芽墙1
[ 
设置颜色为棕色
] 
]
结束
外带
询问人类[
ifelse pcolor!=绿色
[
前方补丁的ifelse[pcolor]1!=红色
[
你的移动功能
]
[
你的弹跳功能
]
留下痕迹
]
[
停止
]
]
打上钩
结束
你的移动功能
让t瞄准
所有可能移动中的一个[距离t]
fd 1
结束
你的弹跳功能
让t瞄准
所有可能移动中的一个[距离t]
结束
报告所有可能的行动
报告半径1内具有[此处没有任何墙且距离为0和plabel=”“]的面片
结束
留下痕迹
在此处询问补丁[设置plabel ticks]
结束


如果您能包含与此问题相关的代码,可能会更有帮助。第一个建议是使用补丁,而不是使用海龟作为障碍物,因为它们不会移动!这是一个好主意,但我正在考虑对海龟使用不同的形状…我想你需要改写你的问题,你不需要全局变量,你需要一个海龟变量,对于两种海龟,你可以有一个海龟变量在移动?然后为不移动海龟指定为false,只要求移动代理离开!你也可以使用品种类型