- •Поставить новую шашку
- •Переставить существующую шашку
- •Описание вычисления оценочной функции
- •Формула оценки
- •1. Материальный баланс
- •2. Мобильность
- •3. Контроль центра
- •Примеры работы оценочной функции
- •Описание вычисления Альфа-Бета
- •Руководство пользователя
- •Руководство программиста
- •2. Архитектура системы
- •1.Основные компоненты:
- •3. Описание ключевых компонентов
- •2. Класс ai (Искусственный интеллект)
- •4. Описание функций
- •4.1 Логика игры
- •4.2 Алгоритм ии
- •5. Возможные улучшения
- •Руководство системного администратора
- •2. Архитектура и принципы функционирования
- •3. Системные требования
- •4. Установка программы
- •5. Административные функции
- •6. Проверка работоспособности
- •7. Возможные ошибки и их устранение
- •8. Техническое обслуживание
Описание вычисления Альфа-Бета
Алгоритм "Альфа-бета отсечение" представляет собой оптимизированную версию алгоритма минимакс, которая сокращает количество узлов, которые необходимо оценить в дереве возможных ходов, сохраняя при этом тот же результат, что и полный перебор.
Ключевые параметры:
maximizingPlayer (bool):
true — если сейчас ходит AI (максимизирует оценку)
false — если ходит игрок (минимизирует оценку)
alpha (int): Лучшая оценка, которую может гарантировать максимизирующий игрок (AI). Начинается с -∞.
beta (int): Лучшая оценка для минимизирующего игрока (игрока-человека). Начинается с +∞.
Условие отсечения: Если в процессе анализа beta <= alpha, алгоритм прекращает просмотр текущей ветки — это значит, что найденный ход уже хуже, чем ранее рассмотренный.
Преимущества:
• Снижает количество проверяемых ходов.
• Увеличивает скорость работы AI.
Примеры работы Альфа-Бета алгоритма.
Пример работы для текущей позиции:
0 1 2 3 4
0 + + W W +
1 + + + W +
2 + + W W B
3 + + + + +
4 + + + + +
Шаг 1: Инициализация
AI (W) начинает анализ с alpha = -∞, beta = +∞
Рассматривает 4 возможных хода для белых
Шаг 2: Анализ первого хода W(3,3)
W ставит в (3,3)
Рекурсивно анализирует ответ B:
B выбирает лучший ответ (1,4) с оценкой -5
Оценка ветки: +5 (выгодно для W)
Обновляем alpha = max(-∞, 5) = 5
Шаг 3: Анализ второго хода W(1,2)
W ставит в (1,2)
При анализе ответа B обнаруживается:
B может получить +10 (очень выгодно для B)
Поскольку 10 >= beta (∞), ветка отсекается
Экономия 60% вычислений!
Шаг 4: Анализ третьего хода W(0,1)
W ставит в (0,1)
Лучший ответ B даёт оценку +3
alpha остаётся 5 (не улучшается)
Шаг 5: Итоговый выбор
AI выбирает ход с максимальной оценкой:
W(3,3): +5
W(0,1): +3
W(1,2): отсечено
Результат: AI делает ход W(3,3)
Руководство пользователя
Введение
Гексагон - это стратегическая игра для двух игроков на шестиугольном поле. Один игрок - человек, второй - компьютер с искусственным интеллектом. Цель игры - захватить как можно больше клеток на доске, размещая и перемещая свои фишки согласно правилам.
2. Требования к системе
• ОС: Windows
• Компилятор: Поддержка C++17 или выше
• Терминал: Любой, поддерживающий ввод/вывод текста
3. Управление в игре
Игра полностью управляется с клавиатуры через терминал:
Ввод размеров доски при начале игры
Выбор стороны (черные или белые)
Ввод координат для размещения или перемещения фишек
Навигация по меню с помощью цифрового ввода
4. Правила игры
Игровое поле
Шестиугольная доска размером от 5x5 до 11x11 (рекомендуется 5)
Каждая клетка может быть:
Пустой (+)
Занятой черной фишкой (B)
Занятой белой фишкой (W)
Ход игры
Игроки ходят по очереди
Возможные действия:
Размещение новой фишки: в начале игры на любую клетку поля, далее можно разместить новую фишку на любой пустой клетке, соседней одной своей фишкой
Перемещение фишки: можно переместить свою фишку на соседнюю пустую клетку или перепрыгнуть через одну фишку (свою или чужую) на пустую клетку за ней
После каждого хода все соседние фишки противника рядом переворачиваются на вашу сторону
Особые правила
Если у игрока нет возможных стандартных ходов (размещение рядом со своими фишками или перемещение), он может разместить фишку на любой свободной клетке
Игра заканчивается, когда доска полностью заполнена
Побеждает игрок с наибольшим количеством своих фишек на доске
При запуске программа предложит:
Ввести размер доски
Выбрать сторону (B - черные, W - белые)
Черные всегда ходят первыми
Во время своего хода игрок видит:
Текущее состояние доски
Меню доступных действий
После каждого хода доска обновляется, показывая изменения
6. Как происходит ход игрока
Выводится доска
Игровое поле отображается в шестиугольной сетке с координатами.
Фишки игрока обозначаются B (Черные) или W (Белые), пустые клетки — +.
Пользователь вводит координаты поля для хода
ИИ делает ход автоматически
7.Пример игрового экрана
8. Искусственный интеллект (AI)
Алгоритм: Минимакс с альфа-бета отсечением (глубина 3 хода).
Оценочная функция учитывает: • Количество фишек на доске. • Расстояние до ключевых позиций. • Мобильность (количество доступных ходов).
Принятие решения: AI выбирает ход, максимизирующий его преимущество и минимизирующий варианты игрока.
9. Возможные ошибки и защита от “дурака”
• При вводе недопустимого номера хода — программа не завершает работу, а просит повторить ввод.
• Проверяется корректность ввода координат и наличие возможных ходов.
• Исключаются ситуации с вылетом за границы массива или с некорректными координатами.
11. Советы игроку
Контролируйте центр — фишки в центре доски более мобильны.
Используйте прыжки — они позволяют быстро перемещаться через соседние фишки.
Блокируйте противника — мешайте AI создавать цепочки ходов.
Не оставляйте фишки в углах — их сложнее двигать.
12. Завершение игры
Игра заканчивается, если:
Доска заполнена — побеждает игрок с большим числом фишек.
Нет допустимых ходов (игрок или AI не может сделать ход по правилам).
