无法指定代理的位置和发芽命令
Trouble specifying agent's location and sprout command
我的子模型的 objective 是模拟狼代理人如何避开人类密度超过狼容忍阈值的斑块。当 运行 设置我的模型时,sprout 命令没有像我预期的那样在城市补丁中生成人类代理的数量。城市补丁创建人类的代码是:
询问补丁[ if self = urban-patches [sprout-humans initial-number-humans]]
这是我的界面选项卡的图像:NetLogo space
灰色是我的城市斑块,棕色是草地斑块,绿色是森林斑块。为什么我的人类代理人没有出现在代理人数量反映初始人数的灰色(城市)补丁中?
这里是创建人工代理的代码:code
我已经指定了位于城市(灰色)补丁中的人类代理的 xy 坐标,但是当我 运行 模型时只出现了一个人类代理。如何正确编码 initial-number-humans 以连接 sprout 命令?
正如我想您现在已经发现的那样,将一定数量的海龟随机分布在一组补丁中的最简单方法是使用 create-turtles
而不是 sprout
。这是因为 sprout
在每个发芽的小块上创建了指定数量的海龟,因此您需要兼顾要创建的总数和小块的数量。但是,如果您想实现均匀分布而不是随机位置,则该选项很有用。这是同时执行这两项操作的代码。
globals [urban-patches n-humans]
to setup
clear-all
set urban-patches n-of 20 patches
ask urban-patches [set pcolor gray]
set n-humans 100
make-humans-sprout
make-humans-create
end
to make-humans-sprout
ask urban-patches
[ sprout n-humans / count urban-patches
[ set color red
set xcor xcor - 0.5 + random-float 1
set ycor ycor - 0.5 + random-float 1
]
]
end
to make-humans-create
create-turtles n-humans
[ set color blue
move-to one-of urban-patches
set xcor xcor - 0.5 + random-float 1
set ycor ycor - 0.5 + random-float 1
]
end
请注意,对 xcor
和 ycor
的调整是因为 sprout
和 move-to
始终将海龟放在补丁的中心并且没有原语放置在特定补丁的随机位置。
我的子模型的 objective 是模拟狼代理人如何避开人类密度超过狼容忍阈值的斑块。当 运行 设置我的模型时,sprout 命令没有像我预期的那样在城市补丁中生成人类代理的数量。城市补丁创建人类的代码是:
询问补丁[ if self = urban-patches [sprout-humans initial-number-humans]]
这是我的界面选项卡的图像:NetLogo space
灰色是我的城市斑块,棕色是草地斑块,绿色是森林斑块。为什么我的人类代理人没有出现在代理人数量反映初始人数的灰色(城市)补丁中?
这里是创建人工代理的代码:code
我已经指定了位于城市(灰色)补丁中的人类代理的 xy 坐标,但是当我 运行 模型时只出现了一个人类代理。如何正确编码 initial-number-humans 以连接 sprout 命令?
正如我想您现在已经发现的那样,将一定数量的海龟随机分布在一组补丁中的最简单方法是使用 create-turtles
而不是 sprout
。这是因为 sprout
在每个发芽的小块上创建了指定数量的海龟,因此您需要兼顾要创建的总数和小块的数量。但是,如果您想实现均匀分布而不是随机位置,则该选项很有用。这是同时执行这两项操作的代码。
globals [urban-patches n-humans]
to setup
clear-all
set urban-patches n-of 20 patches
ask urban-patches [set pcolor gray]
set n-humans 100
make-humans-sprout
make-humans-create
end
to make-humans-sprout
ask urban-patches
[ sprout n-humans / count urban-patches
[ set color red
set xcor xcor - 0.5 + random-float 1
set ycor ycor - 0.5 + random-float 1
]
]
end
to make-humans-create
create-turtles n-humans
[ set color blue
move-to one-of urban-patches
set xcor xcor - 0.5 + random-float 1
set ycor ycor - 0.5 + random-float 1
]
end
请注意,对 xcor
和 ycor
的调整是因为 sprout
和 move-to
始终将海龟放在补丁的中心并且没有原语放置在特定补丁的随机位置。