Netlogo 预期输入为数字,但为真/假
我得到了这段代码:Netlogo 预期输入为数字,但为真/假,netlogo,Netlogo,我得到了这段代码: to catch-rose let prey one-of roses-here if prey != nobody [ set energy energy + 1 set rose_ramasse rose_ramasse + 1 ask prey [ die ] ] end 当我启动模拟
to catch-rose
let prey one-of roses-here
if prey != nobody
[
set energy energy + 1
set rose_ramasse rose_ramasse + 1
ask prey [ die ]
]
end
当我启动模拟时,我得到以下错误消息
我一直想自己解决我的问题,但我做不到。为什么它不想识别第二个SET命令?为什么它认为这是真/假陈述?错误消息告诉您:
globals [age]
to go
set age TRUE
set age age + 1
+
。因此,您知道,+
的输入之一失败+
的输入之一是真/假
值李>
现在,您已经告诉我们,它所指的行是第二个set
语句。该行有两个到+
的输入,rose_ramasse
和1
所以,您的问题是,rose_ramasse
是一个TRUE/FALSE
(布尔)值。如果没有剩下的代码,就不清楚rose_-ramasse
是否是全局变量,因此很难进一步帮助您确定在哪里为rose_-ramasse
分配了布尔值
我可以使用以下简单函数复制错误消息:
globals [age]
to go
set age TRUE
set age age + 1
energy
和rose_-ramasse
都是数值吗?看起来,+
运算符正在抱怨它的一个输入是真/假
而不是数字。由于1
显然是一个数字,我猜变量不是。如果我添加的变量不是一个数字,我就会得到这个错误。找到原因很有帮助,实际上这是一个简单的错误,我没有初始化rose_ramasse=0,比如energy=5