Initial commit

This commit is contained in:
Aleksandr Ebaklakov
2026-04-22 16:58:43 +03:00
commit 011626b8b7
366 changed files with 23244 additions and 0 deletions

176
мусор.md Normal file
View File

@@ -0,0 +1,176 @@
# CRC карточки проекта DeliverySystem
<style>
table { width: 100%; border-collapse: collapse; margin-bottom: 20px; }
th, td { border: 1px solid #ddd; padding: 8px; }
th[colspan="2"] { background-color: #333; color: white; }
</style>
<table>
<tr>
<th colspan="2" align="center" style="font-size: 1.2em;">GameEngine</th>
</tr>
<tr>
<th width="50%">Обязанности</th>
<th width="50%">Взаимодействия</th>
</tr>
<tr>
<td valign="top">
1. Управление игровым процессом и бизнес-логикой.<br>
2. Обработка команд игрока: движение по компасным направлениям.<br>
3. Взаимодействие с объектами в комнате (открытие, отпирание контейнеров).<br>
4. Связывание действий UI с изменениями состояния моделей.<br>
5. Оповещение слушателей об игровых событиях и изменениях состояния.
</td>
<td valign="top">
Player<br>
Room<br>
Direction<br>
Container<br>
Key<br>
Door
</td>
</tr>
</table>
<table>
<tr>
<th colspan="2" align="center" style="font-size: 1.2em;">MapSerializer</th>
</tr>
<tr>
<th width="50%">Обязанности</th>
<th width="50%">Взаимодействия</th>
</tr>
<tr>
<td valign="top">
1. Сохранение графа комнат в JSON-файл.<br>
2. Загрузка графа из JSON-файла обратно в игровые объекты.<br>
3. Валидация связей между дверьми при загрузке.<br>
4. Конвертация игровых объектов в DTO и обратно.
</td>
<td valign="top">
Room<br>
Door<br>
Container<br>
Key<br>
DTO-модели (MapDTO, RoomDTO, DoorDTO, ItemDTO)
</td>
</tr>
</table>
<table>
<tr>
<th colspan="2" align="center" style="font-size: 1.2em;">Player</th>
</tr>
<tr>
<th width="50%">Обязанности</th>
<th width="50%">Взаимодействия</th>
</tr>
<tr>
<td valign="top">
1. Хранение инвентаря (рюкзака) с предметами.<br>
2. Запоминание текущей комнаты.<br>
3. Добавление и удаление предметов из рюкзака.<br>
4. Поиск ключа по идентификатору в рюкзаке.
</td>
<td valign="top">
Room<br>
IItem<br>
Key
</td>
</tr>
</table>
<table>
<tr>
<th colspan="2" align="center" style="font-size: 1.2em;">Room</th>
</tr>
<tr>
<th width="50%">Обязанности</th>
<th width="50%">Взаимодействия</th>
</tr>
<tr>
<td valign="top">
1. Хранение описания окружения.<br>
2. Хранение словаря дверей по направлениям.<br>
3. Хранение списка интерактивных объектов внутри комнаты.<br>
4. Формирование полного текстового описания комнаты для игрока.
</td>
<td valign="top">
Door<br>
Direction<br>
GameObject
</td>
</tr>
</table>
<table>
<tr>
<th colspan="2" align="center" style="font-size: 1.2em;">Door</th>
</tr>
<tr>
<th width="50%">Обязанности</th>
<th width="50%">Взаимодействия</th>
</tr>
<tr>
<td valign="top">
1. Предоставление логического перехода в другую комнату.<br>
2. Блокировка прохода, если дверь заперта.<br>
3. Проверка переданного ключа на соответствие RequiredKeyId.<br>
4. Открывание и запирание замка по подходящему ключу.
</td>
<td valign="top">
Room<br>
Key<br>
ILockable
</td>
</tr>
</table>
<table>
<tr>
<th colspan="2" align="center" style="font-size: 1.2em;">Container (Chest, Wardrobe)</th>
</tr>
<tr>
<th width="50%">Обязанности</th>
<th width="50%">Взаимодействия</th>
</tr>
<tr>
<td valign="top">
1. Хранение списка предметов IItem внутри себя.<br>
2. Поддержка внутреннего состояния: открыт / закрыт.<br>
3. Поддержка состояния замка: заперт / отперт.<br>
4. Разрешение открытия только при отсутствии замка или наличии верного ключа.<br>
5. Управление содержимым: добавление и извлечение предметов.
</td>
<td valign="top">
GameObject<br>
ILockable<br>
IItem<br>
Key
</td>
</tr>
</table>
<table>
<tr>
<th colspan="2" align="center" style="font-size: 1.2em;">Key</th>
</tr>
<tr>
<th width="50%">Обязанности</th>
<th width="50%">Взаимодействия</th>
</tr>
<tr>
<td valign="top">
1. Представление предмета, который можно поднять с пола.<br>
2. Хранение уникального идентификатора для отпирания замков.<br>
3. Предоставление идентификатора дверям и контейнерам для проверки.
</td>
<td valign="top">
GameObject<br>
IItem
</td>
</tr>
</table>