
- •Задание
- •Поставить новую шашку
- •Переставить существующую шашку
- •Описание вычисления оценочной функции
- •Формула оценки
- •1. Материальный баланс
- •2. Мобильность
- •3. Контроль центра
- •Примеры работы оценочной функции
- •Описание вычисления Альфа-Бета
- •Руководство пользователя
- •2. Требования к системе
- •3. Управление в игре
- •4. Правила игры
- •2. Архитектура системы
- •1.Основные компоненты:
- •3. Описание ключевых компонентов
- •4. Описание функций
- •4.1 Логика игры
- •4.2 Алгоритм ии
- •5. Возможные улучшения
- •Назначение
- •2. Архитектура и принципы функционирования
- •8. Техническое обслуживание
Описание вычисления Альфа-Бета
Алгоритм "Альфа-бета отсечение" представляет собой оптимизированную версию алгоритма минимакс, которая сокращает количество узлов, которые необходимо оценить в дереве возможных ходов, сохраняя при этом тот же результат, что и полный перебор.
Принцип:
• maximizingPlayer — true, если AI выбирает ход (пытается увеличить результат).
• alpha — лучшая оценка, которую может гарантировать максимизирующий игрок.
• beta — наилучшая оценка минимизирующего игрока.
• Когда beta <= alpha, дальнейшие ходы не рассматриваются — отсечение.
Преимущества:
• Снижает количество проверяемых ходов.
• Увеличивает скорость работы AI.
Примеры работы Альфа-Бета алгоритма.
Допустим, AI анализирует три возможных хода. Глубина — 2.
Первый ход AI:
• AI делает ход 1 → человек отвечает → итоговая оценка = +40
• alpha = 40 (лучшая оценка для AI на данный момент)
Второй ход AI:
• AI делает ход 2 → человек отвечает → результат = +25
• alpha не меняется (40 лучше)
Третий ход AI:
• AI делает ход 3
• Во время анализа ответа игрока 'X' видно, что 'X' может получить -100
• Поскольку beta = -100 < alpha = 40, происходит отсечение — анализ прекращается.
Вывод:
Ход 3 не может быть лучше, чем уже известный ход 1 → экономия вычислений.
Руководство пользователя
1. Введение Данная игра — стратегическая головоломка для двух игроков на доске размером 9x9 клеток. Один из игроков — человек, второй — компьютерный AI. Цель игры — переместить все свои фишки в противоположную область доски, выполняя обычные ходы или прыжки.
2. Требования к системе
• ОС: Windows, Linux или macOS
• Компилятор: Поддержка C++11 или выше (g++, clang++, MSVC)
• Терминал: Любой, поддерживающий ввод/вывод текста
3. Управление в игре
Игра полностью управляется с клавиатуры через терминал:
• При ходе человека отображается список всех возможных ходов.
• Пользователь вводит номер хода из списка (например, 3).
• Если введено неправильное значение — появляется сообщение об ошибке.
4. Правила игры
Игровое поле:
• Размер: 9 строк x 9 столбцов
• Центр: 3x3 область (средние клетки), используется обеими сторонами
• Игрок 'X' (человек): стартует сверху
• Игрок 'O' (AI): стартует снизу
Ход игры:
• Игроки ходят по очереди.
• Возможны два типа хода:
• Обычный: на соседнюю пустую клетку по вертикали/горизонтали.
• Прыжок: через одну фишку, если за ней есть пустая клетка. Прыжки можно цепочкой.
Цель:
Переместить все свои фишки в противоположный лепесток (например, 'X' — в нижние 3 строки).
6. Как происходит ход игрока
1. Выводится доска.
2. Игроку 'X' (человеку) показывается список возможных ходов:
Ходы игрока X:
1: (1,3) -> (2,3)
2: (2,4) -> (3,4)
3. Пользователь вводит номер желаемого хода, например: 2
4. ИИ делает свой ход автоматически.
7.Пример игрового экрана
8. Искусственный интеллект (AI)
AI использует алгоритм Минимакс с альфа-бета отсечением:
• Оценивает каждый возможный ход на 3 уровня вперёд.
• Учитывает расстояние фишек до цели, фишки в цели и позиции противника.
• Делает оптимальный ход на основе оценочной функции.
9. Возможные ошибки и защита от “дурака”
• При вводе недопустимого номера хода — программа не завершает работу, а просит повторить ввод.
• Проверяется корректность ввода координат и наличие возможных ходов.
• Исключаются ситуации с вылетом за границы массива или с некорректными координатами.
11. Советы игроку
• Старайтесь продвигать фишки ближе к цели.
• Используйте прыжки для быстрого перемещения.
• Не оставляйте фишки далеко — AI может получить преимущество.
• Анализируйте возможные комбинации цепных прыжков.
12. Завершение игры
Игра завершается автоматически при выполнении одного из условий:
• Один игрок полностью переместил фишки в цель.
• Один из игроков не может сделать ни одного хода.
Руководство программиста
1. Назначение программы
Программа реализует пошаговую стратегическую игру в жанре “захват базы” с симметричным полем 9×9. Один игрок управляется человеком, другой — ИИ, который использует алгоритм MiniMax с альфа-бета отсечением.
Основные функции:
• Инициализация и визуализация текстовой доски
• Поддержка пользовательского ввода
• Автоматическая генерация возможных ходов
• Поддержка простых и прыжковых (цепных) ходов
• Реализация ИИ (оценка + MiniMax)
• Подсчёт победителя и завершение игры