Регистрация переменных черепахи не работает как задумано - PullRequest
0 голосов
/ 17 февраля 2019

Я работаю над моделью, которая подсчитывает каждое взаимодействие всех черепах и представляет их на мониторе.Мой код работает, кроме как не по назначению.Я получаю слишком много регистраций переменных.

Я немного неопытен с Нетлого.Я уже проверил свой код с использованием как можно меньшего количества черепах, но регистрация переменных, по-видимому, происходит на каждом такте для всех черепах независимо от их местоположения.взаимодействие должно учитываться как один, а не много раз в течение моделирования.Кроме того, мне нужно, чтобы каждое взаимодействие учитывалось только тогда, когда черепахи находятся в непосредственной близости друг от друга.

1 Ответ

0 голосов
/ 19 февраля 2019

Хорошо, проблема в том, что вы увеличиваете количество инфекций в каждом блоке.Посмотрите на ваш пример из комментариев: 1 паниковал, 1 спокоен, 1 предупрежден, и три встретились.Взгляните на перспективу настороженной черепахи (первая часть вашего кода):

  • первый тест: да, поблизости есть паника, поэтому настроение меняется, а заражение увеличивается
  • секундатест: да, рядом также есть затишье, поэтому меняется настроение и увеличивается заражение СНОВА
  • третий тест: да, поблизости (само по себе) есть оповещение, поэтому снова увеличивается заражение

Первое исправление состоит в том, чтобы изменить ваши тесты на if any? other citizens ..., потому что включение other исключает себя из теста.

Второе исправление на самом деле является проблемой логики, а не проблемой кодирования, вам нужно разобратьсячто вы действительно хотите посчитать.

...