Netlogo:"expected a literal value" 在 "ifelse" 块中
Netlogo: "expected a literal value" in a "ifelse" block
我想查看乌龟是羊还是狼,分别设置命令。但是 Netlogo 突出显示 set
并告诉我
expected a literal value
这是经过编辑的代码,我添加了更多基本信息并做了一些简化以便快速理解。
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 告诉我需要 文字值 ?
提前致谢。
问题出在你的语法 is-a-sheep? is-wolf?声明。 is-breed?接受一个参数,即您正在测试的代理的身份。因此,您的代码应该是
to go
ask turtles[
(ifelse
is-a-sheep? self [ set SEnergy SEnergy - 1 ]
is-wolf? self [ set WEnergy WEnergy - 1 ])
]
end
然后每只乌龟都在问自己它是什么。
当然,你可以单独询问每个agentset。
ask sheep [set SEnergy SEnergy - 1]
ask wolves [set WEnergy WEnergy -1]
查尔斯
我想查看乌龟是羊还是狼,分别设置命令。但是 Netlogo 突出显示 set
并告诉我
expected a literal value
这是经过编辑的代码,我添加了更多基本信息并做了一些简化以便快速理解。
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 告诉我需要 文字值 ?
提前致谢。
问题出在你的语法 is-a-sheep? is-wolf?声明。 is-breed?接受一个参数,即您正在测试的代理的身份。因此,您的代码应该是
to go
ask turtles[
(ifelse
is-a-sheep? self [ set SEnergy SEnergy - 1 ]
is-wolf? self [ set WEnergy WEnergy - 1 ])
]
end
然后每只乌龟都在问自己它是什么。
当然,你可以单独询问每个agentset。
ask sheep [set SEnergy SEnergy - 1]
ask wolves [set WEnergy WEnergy -1]
查尔斯