我有个模拟僵尸和人类互相争斗的场景。下面的代码是创建我的僵尸的代码。
create-zombies 5 [
setxy random-xcor random-ycor
set color black
set size 2
set shape "person"
set zombies_speed 0.5
]这段代码是用来把人类变成僵尸的代码。convert-h变量是一个全局变量,我把它设置为=到convert-h-2,这是一个滑块,可以用来确定人类变成僵尸的概率。
to infect
set convert-h convert-h-2
if any? humans in-radius 1 [
ask humans in-radius 1 [
if random 10 < convert-h [
hatch-zombies 1 [
set heading random 360]
die]]]
end然而,当人类变成僵尸时,它并没有吸收僵尸的所有特征( size 2,shape "person")。它只需要speed、breed和color。有没有一种方法可以添加僵尸的这两个特性,而不必在第二个代码片段中手动编写呢?我希望我描述的一切都有意义
发布于 2021-04-09 19:33:32
您可以将“僵尸设置”逻辑统一到一个过程中,然后在创建和感染/孵化时调用该逻辑:
to setup-zombie
set color black
set size 2
set shape "person"
set zombies_speed 0.5
end
...
create-zombies 5 [
setup-zombie
setxy random-xcor random-ycor
]
...
to infect
set convert-h convert-h-2
if any? humans in-radius 1 [
ask humans in-radius 1 [
if random 10 < convert-h [
hatch-zombies 1 [
setup-zombie
set heading random 360]
die]]]
endhttps://stackoverflow.com/questions/67027144
复制相似问题