我有这段代码:
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
当我启动模拟时,我收到以下错误消息
+ expected input to be a number but got the TRUE/FALSE false instead. error while unefeebleue 2 running + called by procedure CATCH-ROSE called by procedure GO called by Button 'go'*
我一直试图自己解决问题,但我无法解决。为什么它不想识别第二个SET命令?为什么它认为这是真/假声明?
答案 0 :(得分:1)
错误消息告诉您以下内容:
+
。所以你知道它是+
失败的输入之一。+
的一个输入是TRUE/FALSE
值。 现在,您告诉我们它引用的行是第二个set
语句。该行的+
有两个输入,rose_ramasse
和1
所以,你的问题是rose_ramasse
是一个TRUE/FALSE
(布尔值)值。如果没有其余代码,则不清楚rose_ramasse
是否是全局变量,因此很难进一步帮助您解决rose_ramasse
被赋予布尔值的问题。< / p>
我可以使用如下的简单函数复制错误消息:
globals [age]
to go
set age TRUE
set age age + 1