我想看看乌龟是羊还是狼,并分别设置命令。但是Netlogo突出显示了set
并告诉我
期望一个文字值
这里是编辑的代码,我添加了更多的基本信息,并为快速理解做了一些简化。
breed [sheep a-sheep]
breed [wolves wolf]
sheep-own [SEnergy]
wolves-own [WEnergy]
to setup
clear-all
create-sheep 100
ask sheep [set SEnergy 100]
create-wolves 100
ask wolves [set SEnergy 100]
reset-ticks
end
to go
ask turtles[
(ifelse
is-a-sheep? [set SEnergy SEnergy - 1]
is-wolf? [set WEnergy WEnergy - 1])
]
tick
end
我在Netlogo字典中给这个例子加上了红色
(ifelse boolean1 [ commands1 ] boolean2 [ commands2 ] ... [ elsecommands ])
因此,我认为我的代码中的[set SEnergy SEnergy - 1]
应该是一个命令。为什么Netlogo告诉我需要一个文本值?
提前谢谢。
发布于 2022-02-28 13:54:27
问题在于你对羊的语法?是-狼?语句。是-繁殖?接受一个参数,您正在测试的代理的标识。因此,您的代码应该是
to go
ask turtles[
(ifelse
is-a-sheep? self [ set SEnergy SEnergy - 1 ]
is-wolf? self [ set WEnergy WEnergy - 1 ])
]
end
然后每只海龟都在问自己它是什么。
当然,您可以单独询问每个代理集。
ask sheep [set SEnergy SEnergy - 1]
ask wolves [set WEnergy WEnergy -1]
查尔斯
https://stackoverflow.com/questions/71291449
复制相似问题