试图找到一种方法让代理保持在网络徽标中的特定补丁
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 得到负数)
的简单方法
我创建了一个有蓝色边和绿色边的世界,中间有一个边框,我在其中创建了两组代理,一组是蓝色人口,另一组是绿色人口,但是我似乎无法将蓝色人口保持在蓝色一侧,并与绿色保持一致,这是我正在使用的代码:
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 得到负数)