Данное задание требует от нас создать гнездо
о происхождении девяти кусочков
И мы собираемся использовать оранжевый цвет для этой ячейки
Идём в код и добравляем переменную "turtle", и первая строка - это "turtles-own"
В скобках печатаем "return-to-nest" (вернуться в гнездо), вопросительный знак
Затем мы создаем новую переменную для кусочков
Печатем "patches-own", скобка, "nest" (гнездо), вопросительный знак, закрываем скобки
Теперь надо добавить пару сток, чтобы начать процедуру
Пишем команду для "ask turtles" (спросить черепах)
Установим "return-to-nest" (вернуться в гнездо) как "false"
Если мы это не сделаем, NetLogo установит каждую новую переменную, как "true" по умолчанию
Итак, сейчас я добавлю новую строку, которая будет новой операцией
И назову её "set-up-nest" (установить гнездо)
Добавляем к этой операции "and" (и) и "to" (к) "set-up-nest" (установить гнездо)
а также "ask patches" (запросить кусочки), что определяет контекст кусочков
в отношении "set nest" (установить гнездо) как "true"
когда кусочек попадает в период на расстоянии 2 от происхождения
то есть, чтобы написать это, задаём дистанцию, 0, 0, скобка закрывается, меньше 2
Дальше если "if" кусочек попадает под этот критерий, то есть если "nest" это "true"
пишем "set color" (установить цвет) как "orange" (оранжевый), скобку закрыли
и закрываем операцию словом "end" (закончить)
Посмотрим, как это работает
Забыл закрывающую скобку. Добавил.
Посмотрим. Выглядит правильно.
Идём в интерфейс, нажимаем "Setup"
И вот мы видим... Сложно сказать, если тут девять кусочков, но я предполагаю, что да
Теперь у нас оранжевое гнездо в центре.
Следующее задание - это написать код, который будет требовать агентов вернуться после того
как они уже поели еду, перед тем, как они пойдут кормиться снова
Есть много разных способов сделать это, но мой вариант таков
Сначала я хотел бы упростить операцию "go"
Я собираюсь создать новую операцию, которую я назову "look-for-food" (искать еду)
Вырежем эту часть...
Пишем новую строку операции...
Отделяем пробелами.
А теперь идём назад к операции "go"
И "if" (если) "return-to-nest" (вернуться в гнездо) это "false", тогда мы "look-for-food" (искать еду)
Далее если "return-to-nest" (вернуться в гнездо) это "true", мы вернемся в гнездо
Мы ещё не написали эту операцию, "return-to-nest", так что мы это сделаем следующим шагом
Перед тем, как мы это сделаем, надо бы проверить, всё ли мы сделали верно пока что...
Нажимаем на проверку, и, да, у нас пока нет операции "return-to-nest"
А ещё я забыл знак "равно" после этой строки, вставляем
и идём к следующей операции...
Для неё мы просто напишем "face patch", 0, 0, что является происхождением, вперёд 1
И это определяет каждый конец, который подразумавает возвращение в гнездо как "true"
...чтобы соединить возвращение
и сделать шаг в этом направлении
И тогда идти питаться после прибывания в гнезде
Следовательно, если "pcolor" оранжевый, это означает вернуться домой...
...мы задаём "return-to-nest" как "false". Закрываем скобку.
Пока что у нас нет ни одного конца, где "return-to-nest" было бы "true"
Поэтому нам надо это сделать
После того, как они съедят еду, давайте установим "return-to-nest" как "true"
Проверим этот код. Выглядит нормально.
Назад в интерфейс, "Setup" и "Go"
Маловато концов, так что сложно сказать, что они делают
Так что давайте уменьшим количество событий и попробуем ещё раз
Замедлим...
Можем увидеть ответ на задание в этом поведении, как оно должно быть
...кушать еду и возвращаться в гнездо перед тем, как выйти снова
Можем сменить цвет назад в красный, чтобы было более наглядно
...но давайте оставим это на потом