Netlogo 与海龟不同的全局值

Netlogo different global values from turtles

我不明白为什么我的 netlogo 代码中出现了一些东西,但最后我发现一个全局变量将值从 turtles 更改为 turtles,这可能吗? 我注意到这一点是因为我的代码中有 2 个打印值,如下所示:

breed [players player]
breed [balls ball]

globals [
  TURNS;
  TEAM-OWNER
]
to setup
  clear-all
  reset-ticks
  set TURNS 0
  setup-players
  setup-ball
end

to setup-ball
  create-balls 1 [
    setxy 0 0
    set color orange
    set shape "bug"
    set size 2.5
  ]
end 

to setup-players
  create-players 5 [
    setxy 0 0
    set color white
    set shape "bug"
    set size 2.5
  ]
end 

to go 
  set TURNS TURNS + 1
  print word "this is the turns " TURNS
  print ( word " values " TEAM-OWNER)
  if ticks >= 1000 [ stop ]

    ask players [
    print ( word " values " TEAM-OWNER)
    fd 2 
    set TEAM-OWNER "red"
  ]

  ask balls [
    fd 2
    set TEAM-OWNER "black"
  ]

end

这可能吗?全局值不会改变所有海龟的值吗? 这是我得到的印刷品:

this is the turns  1
values 0
values 0
values red
values red
values red
values red
this is the turns 2
values black
values black
values red
values red
values red
values red

没有像黑1次?其他时候是红色的?为什么我得到 2 个黑人?

一个全局变量是全局的——它只有一个副本,所有海龟都检索和修改同一个副本。

看看你的这段代码:

ask players [
  print ( word " values " TEAM-OWNER)
  fd 2 
  set TEAM-OWNER "red"
]

ask balls [
  fd 2
  set TEAM-OWNER "black"
]

首先,你的每个玩家向前移动两个距离单位,然后将 TEAM-OWNER 的值设置为 "red"。如果您有 10 个玩家,则全局变量 TEAM-OWNER 被设置为红色 10 次。然后你的每一个球向前移动两个距离单位并将变量 TEAM-OWNER 设置为 "black"。只要你有一个(或多个)球,那么全局变量就会被覆盖。

全局变量用于模型中每只海龟都相同的东西。