预期输入为数字但是为TRUE / FALSE

时间:2015-04-20 14:48:36

标签: 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

当我启动模拟时,我收到以下错误消息

+ 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命令?为什么它认为这是真/假声明?

1 个答案:

答案 0 :(得分:1)

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

  1. 它以失败的操作开始。通常这是一个过程名称,在这种情况下它是+。所以你知道它是+失败的输入之一。
  2. 它告诉您+的一个输入是TRUE/FALSE值。
  3. 现在,您告诉我们它引用的行是第二个set语句。该行的+有两个输入,rose_ramasse1

    所以,你的问题是rose_ramasse是一个TRUE/FALSE(布尔值)值。如果没有其余代码,则不清楚rose_ramasse是否是全局变量,因此很难进一步帮助您解决rose_ramasse被赋予布尔值的问题。< / p>

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

    globals [age]
    
    to go
        set age TRUE
        set age age + 1