# Фаза 21. Выбор действия ## Зависимости - [Фаза 20](20-needs-actions.md) ## Зачем Последний кусок среза: обязанность перестаёт быть приказом. Ученик с критической нуждой уходит с урока и возвращается, и это видно в кабинете и в его карточке. ## Задачи - [ ] Цели, веса и планирование — целиком в `HSchool.Ai`: на вход значения, на выход решение. В `HSchool.Simulation` — только сбор входов и запись ответа - [ ] Цели и их вес: обязанность — постоянный высокий, нужда — тем больше, чем ближе к нулю, досуг — низкий и только при отсутствии обязанности - [ ] Побеждает наибольший вес. Уход с урока получается из сравнения, а не из отдельного правила - [ ] Планирование «дойти → сделать»: цель выбирает действие, планировщик достраивает дорогу до подходящей комнаты - [ ] Начатое доводится до конца: переключение только при заметном перевесе новой цели - [ ] Решения по событиям — звонок, конец действия, приход в назначенный узел, пересечение нуждой порога, — а не каждый тик - [ ] Очередь решений с потолком за тик: отложенное принимается следующим тиком, а не пропадает - [ ] Возвращение к обязанности после закрытия нужды, если урок ещё идёт - [ ] Навык растёт на уроке: от предмета, с поправкой на черты и на состояние нужд - [ ] Опоздание и отсутствие видны: в панели локации на уроке не весь класс, в карточке написано, где человек - [ ] Строки через `t(...)`, обе локали ## Тесты, без которых фаза не закрыта - [ ] Ученик с нулевым «туалетом» уходит с урока, доходит до санузла и возвращается в кабинет - [ ] Нужда чуть ниже порога урок не срывает - [ ] Две почти равные нужды не заставляют метаться: действие доводится до конца - [ ] На перемене выбирается досуг, на уроке — нет - [ ] Навык после учебного дня вырос, у голодного — меньше - [ ] Потолок решений за тик не теряет решения, а сдвигает их - [ ] Тот же сид и те же действия игрока дают ту же школу через игровую неделю - [ ] Разбор решения таблицей входов и выходов, без мира и без хоста ## Критерий готовности - Прогнать школу на ×4 через учебный день и увидеть осмысленную картину: уроки, перемены с коридором и столовой, редкие отлучки посреди урока - `dotnet test`, `npm test` и `npm run build` проходят ## Стоп Не добавлять оценки, настроение, конфликты и дружбу. Не давать игроку приказы. Не углублять планировщик до полного GOAP.