Ожидаемый ввод будет числом, но получил ИСТИНА / ЛОЖЬ
У меня есть этот блок кода:
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 ответ
Сообщение об ошибке говорит вам следующее:
- Начинается с операции, которая не удалась. Часто это имя процедуры, в данном случае это
+
, Итак, вы знаете, что это один из входов в+
это терпит неудачу. - Он говорит вам, что один из входов в
+
этоTRUE/FALSE
значение.
Теперь вы сказали нам, что строка, на которую он ссылается, является второй set
заявление. Есть два входа в +
на этой линии, rose_ramasse
а также 1
Итак, ваша проблема в том, что rose_ramasse
это TRUE/FALSE
(булево) значение. Без остальной части вашего кода не ясно, rose_ramasse
является глобальной переменной или нет, так что трудно пойти дальше, чтобы помочь вам понять, где rose_ramasse
присваивается логическое значение.
Я могу воспроизвести сообщение об ошибке с помощью простой функции, подобной следующей:
globals [age]
to go
set age TRUE
set age age + 1