Files
h-school/docs/phases/21-decisions.md
T
Leonid Pershin 5cd5a6d258
ci / server (push) Failing after 3m40s
ci / client (push) Successful in 14s
Update decision-making phase and enhance localization for presence tracking
- Marked tasks as complete in the decision-making phase documentation, indicating readiness for implementation.
- Updated the README to reflect the completion status of the decision-making phase.
- Enhanced localization strings to include new presence tracking features, improving user experience.
- Revised the game screen logic to display real-time presence status, including walking states for individuals.
- Added tests to validate the new localization strings and presence functionalities, ensuring robust performance.
2026-08-19 21:00: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)
## Зачем
Последний кусок среза: обязанность перестаёт быть приказом. Ученик с критической нуждой уходит с
урока и возвращается, и это видно в кабинете и в его карточке.
## Задачи
- [x] Цели, веса и планирование — целиком в `HSchool.Ai`: на вход значения, на выход решение.
В `HSchool.Simulation` — только сбор входов и запись ответа
- [x] Цели и их вес: обязанность — постоянный высокий, нужда — тем больше, чем ближе к нулю,
досуг — низкий и только при отсутствии обязанности
- [x] Побеждает наибольший вес. Уход с урока получается из сравнения, а не из отдельного правила
- [x] Планирование «дойти → сделать»: цель выбирает действие, планировщик достраивает дорогу до
подходящей комнаты
- [x] Начатое доводится до конца: переключение только при заметном перевесе новой цели
- [x] Решения по событиям — звонок, конец действия, приход в назначенный узел, пересечение
нуждой порога, — а не каждый тик
- [x] Очередь решений с потолком за тик: отложенное принимается следующим тиком, а не пропадает
- [x] Возвращение к обязанности после закрытия нужды, если урок ещё идёт
- [x] Навык растёт на уроке: от предмета, с поправкой на черты и на состояние нужд
- [x] Опоздание и отсутствие видны: в панели локации на уроке не весь класс, в карточке написано,
где человек
- [x] Строки через `t(...)`, обе локали
## Тесты, без которых фаза не закрыта
- [x] Ученик с нулевым «туалетом» уходит с урока, доходит до санузла и возвращается в кабинет
- [x] Нужда чуть ниже порога урок не срывает
- [x] Две почти равные нужды не заставляют метаться: действие доводится до конца
- [x] На перемене выбирается досуг, на уроке — нет
- [x] Навык после учебного дня вырос, у голодного — меньше
- [x] Потолок решений за тик не теряет решения, а сдвигает их
- [x] Тот же сид и те же действия игрока дают ту же школу через игровую неделю
- [x] Разбор решения таблицей входов и выходов, без мира и без хоста
## Критерий готовности
- Прогнать школу на ×4 через учебный день и увидеть осмысленную картину: уроки, перемены с
коридором и столовой, редкие отлучки посреди урока
- `dotnet test`, `npm test` и `npm run build` проходят
## Стоп
Не добавлять оценки, настроение, конфликты и дружбу. Не давать игроку приказы. Не углублять
планировщик до полного GOAP.