试图找到一种方法让代理保持在网络徽标中的特定补丁

Trying to find a way to keep agents to specific patches in net logo

我创建了一个有蓝色边和绿色边的世界,中间有一个边框,我在其中创建了两组代理,一组是蓝色人口,另一组是绿色人口,但是我似乎无法将蓝色人口保持在蓝色一侧,并与绿色保持一致,这是我正在使用的代码:

    to setup_world
  clear-all
  reset-ticks
  ask patches with [pxcor <  0] [ set pcolor blue ]
  ask patches with [pxcor >  0] [ set pcolor green ]

  set border patches with [(pxcor =  0 and abs (pycor) >= 0)]
  ask border [ set pcolor white]

end
to setup_agents

  clear-turtles create-humans blue_population [
    setxy random-xcor random-ycor 
 ifelse xcor >= 0
    [set continent 1]
    [set continent 2]
    set virus? false
    set dead false
    set antibodies 0
    set color yellow
    set size 10
    set shape "blue person"
    ]

   create-humans green_population [
    setxy random-xcor random-ycor
     ifelse xcor >= 0
    [set continent 1]
    [set continent 2]
    set color yellow
    set size 10
    set shape "green person"
    set shape "person"
    set virus? false
    set dead false
    set antibodies 0

  ;]
end

我希望通过创建大陆能够将它们保持在特定的一边,但似乎没有用,我觉得我没有使用正确的约束,任何人都可以向我提供有关如何做到这一点的任何见解已解决?

你的逻辑有点混乱,我怀疑你在中间改变了你的计划。看看蓝色人口程序——你让他们都是蓝色的人,但是你在任何随机位置创建他们,然后根据他们所在的位置分配大陆。你从来没有真正说过 'if I am on the blue side, I am a blue person' 或 'only create the blue people on the blue side'.

您真正想要的是:

setxy abs random-xcor random-ycor 为蓝人

setxy abs random-xcor * -1 random-ycor为绿人

abs 使数字为正数,因此这是随机 select 一个正数(您可以通过乘以 -1 得到负数)

的简单方法