Кажется, я не могу получить логическое условие, что я ожидаю сообщить правду, чтобы действительно сообщить об этом. У меня есть несколько логических связей, связанных «и», каждый из которых сообщает об этом сам по себе, но при подключении Im становится ложным. Я должен иметь ошибку в моем коде, но не могу найти его. Любая помощь будет большой.Не может быть логичным, чтобы сообщить об этом
Ниже приведен соответствующий код:
globals [
GF-Threshold
GF-Probablility]
turtles own [ GF+?]
patches own [ GF ]
to setup [
ask patches [ set GF 30]
ask turtles [ set GF+? false]
set GF-threshold 20
set GF-Probability .9
to go [
ask turtles [ check phenotype ]
to check phenotype
[ if GF+? = false and GF > GF-threshold and random-float 1 < GF-Probability [ set GF+? true]
У меня есть монитор для числа черепах с GF +? = true. Монитор показывает 0, когда я использую вышеуказанный код. Но я ожидаю, что логическое сообщение должно быть истинным, поэтому монитор будет показывать значение больше 0. Я пробовал каждую из своих логик самостоятельно, и при этом я вижу ненулевое значение. Что-то не так с моим кодом? Я также попытался использовать patch-here, думая, что, возможно, проблема связана с патчем и черепахой.
to check phenotype
[ if GF+? = false and [GF] of patch-here > GF-threshold and random-float 1 < GF-Probability [ set GF+? true]
Действительно, синтаксис кода был неправильным. Спасибо за ваш пример кода. Я вижу, что этот код действительно работает сам по себе, но когда я помещаю его в модель, это не так. У меня должно быть что-то еще. Странно, если я использую 'if GF +? ! = true'in место 'if GF +? = false ", тогда я могу заставить монитор реагировать так, как я ожидаю. Мне это очень странно. Кроме того, я попытался использовать ваш пример с 'if not GF +? ', Но получил сообщение об ошибке« ожидаемый T/F, но получил нуль ». Возможно, это имеет какое-то отношение к тому, что я вижу? Я использую числовое значение, когда я думаю, что я использую логическое значение? Спасибо – user3887089
observador> показать колдунов черепах с [GF +? = false] observer: 0 obsadorador> показать количество черепах с [GF +? ! = true] observer: 320 – user3887089
Вышеуказанные команды были указаны в окне команд после процедур настройки. Я не понимаю, как это может дать разные ответы. – user3887089