Files
h-school/docs/phases/21-decisions.md
T
Leonid Pershin c16c34a83c Refactor project structure and enhance AI and simulation components
- Updated project roles to include a new `HSchool.Ai` component, detailing its responsibilities in routing and decision-making.
- Revised the `HSchool.Simulation` component to integrate with the new AI functionalities, improving the interaction between simulation and AI.
- Expanded documentation to reflect the changes in project roles and the introduction of AI features.
- Added tests for the new AI functionalities, ensuring robust pathfinding and decision-making capabilities.
- Updated phase documentation to outline the new stages of school life, focusing on presence and behavior.
2026-08-19 15:57:12 +03:00

52 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Фаза 21. Выбор действия
## Зависимости
- [Фаза 20](20-needs-actions.md)
## Зачем
Последний кусок среза: обязанность перестаёт быть приказом. Ученик с критической нуждой уходит с
урока и возвращается, и это видно в кабинете и в его карточке.
## Задачи
- [ ] Цели, веса и планирование — целиком в `HSchool.Ai`: на вход значения, на выход решение.
В `HSchool.Simulation` — только сбор входов и запись ответа
- [ ] Цели и их вес: обязанность — постоянный высокий, нужда — тем больше, чем ближе к нулю,
досуг — низкий и только при отсутствии обязанности
- [ ] Побеждает наибольший вес. Уход с урока получается из сравнения, а не из отдельного правила
- [ ] Планирование «дойти → сделать»: цель выбирает действие, планировщик достраивает дорогу до
подходящей комнаты
- [ ] Начатое доводится до конца: переключение только при заметном перевесе новой цели
- [ ] Решения по событиям — звонок, конец действия, приход в назначенный узел, пересечение
нуждой порога, — а не каждый тик
- [ ] Очередь решений с потолком за тик: отложенное принимается следующим тиком, а не пропадает
- [ ] Возвращение к обязанности после закрытия нужды, если урок ещё идёт
- [ ] Навык растёт на уроке: от предмета, с поправкой на черты и на состояние нужд
- [ ] Опоздание и отсутствие видны: в панели локации на уроке не весь класс, в карточке написано,
где человек
- [ ] Строки через `t(...)`, обе локали
## Тесты, без которых фаза не закрыта
- [ ] Ученик с нулевым «туалетом» уходит с урока, доходит до санузла и возвращается в кабинет
- [ ] Нужда чуть ниже порога урок не срывает
- [ ] Две почти равные нужды не заставляют метаться: действие доводится до конца
- [ ] На перемене выбирается досуг, на уроке — нет
- [ ] Навык после учебного дня вырос, у голодного — меньше
- [ ] Потолок решений за тик не теряет решения, а сдвигает их
- [ ] Тот же сид и те же действия игрока дают ту же школу через игровую неделю
- [ ] Разбор решения таблицей входов и выходов, без мира и без хоста
## Критерий готовности
- Прогнать школу на ×4 через учебный день и увидеть осмысленную картину: уроки, перемены с
коридором и столовой, редкие отлучки посреди урока
- `dotnet test`, `npm test` и `npm run build` проходят
## Стоп
Не добавлять оценки, настроение, конфликты и дружбу. Не давать игроку приказы. Не углублять
планировщик до полного GOAP.