# hexo Учебный проект. Игра, клон https://www.gamedesign.jp/games/dicewars/ ## Запуск игры ```bash npm run serve # Запустить веб-сервер (http://localhost:8080) npm test # Запустить тесты npm start # Консольная версия карты ``` ## Настройки игры При запуске можно выбрать: - Количество игроков: 2-4 - Тип каждого игрока: Человек (Human) или AI бот ## Правила игры ### 1. Карта - Гексагональная сетка 20×20 ячеек - Каждая ячейка может быть: - Проходима (пустая или принадлежит игроку) - Непроходима (заблокирована) ### 2. Игровые единицы - Кубик: 6-гранный, значения 1-6 - На поле может быть до 8 кубиков - **Сила юнита**: `F = (cnt-1)*6 + current_dice` - `cnt` — количество кубиков - `current_dice` — значение верхнего кубика ### 3. Ход игры #### Перемещение/Атака - Можно ходить, если сила > 1 - На целевую клетку переходит `сила-1`, на исходной остаётся 1 - При атаке оба игрока бросают кости: - Атакующий: `attack_roll = rnd(1..сила-1)` - Защищающийся: `defense_roll = rnd(1..сила)` #### Результат боя - Если `attack_roll > defense_roll`: - Атакующий побеждает, занимает клетку с `attack_roll-1` - На исходной клетке остаётся 1 - Если `attack_roll <= defense_roll`: - Атака отбита, атакующий уменьшается до 1 - Защитник остаётся с `defense_roll - attack_roll` (мин. 1) #### Снабжение - После хода игрок получает снабжение - **Снабжение = размер наибольшей непрерывной территории** - Непрерывная территория — связанные между собой клетки игрока - Если территория разорвана врагом — считается только largest кусок - Снабжение распределяется по 1 единице случайным клеткам (не максимальным) - Максимум на клетке: 48 (8 кубиков × 6) ### 4. Победа - Последний игрок, оставшийся с клетками на карте ## Управление - **Клик** на свою клетку → выбор - **Клик** на соседнюю вражескую/пустую → атака - **Cancel** → отмена выбора - **End Turn** → завершить ход