预期输入为数字但得到 TRUE/FALSE

Expected input to be a number but got TRUE/FALSE

我得到了这段代码:

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 命令?为什么它认为它是 true/false 语句?

错误消息告诉您以下内容:

  1. 它从失败的操作开始。这通常是过程名称,在本例中为 +。所以你知道这是失败的 + 的输入之一。
  2. 它告诉您 + 的输入之一是 TRUE/FALSE 值。

现在,您告诉我们它引用的行是第二个 set 语句。该行的 + 有两个输入,rose_ramasse1

所以,您的问题是 rose_ramasse 是一个 TRUE/FALSE(布尔值)。如果没有其余代码,则不清楚 rose_ramasse 是否是全局变量,因此很难进一步帮助您找出 rose_ramasse 被分配布尔值的位置。

我可以使用如下简单的函数复制错误消息:

globals [age]

to go
    set age TRUE
    set age age + 1