Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП_3 этап.docx
Скачиваний:
0
Добавлен:
23.06.2025
Размер:
383.83 Кб
Скачать

Описание вычисления Альфа-Бета

Алгоритм "Альфа-бета отсечение" представляет собой оптимизированную версию алгоритма минимакс, которая сокращает количество узлов, которые необходимо оценить в дереве возможных ходов, сохраняя при этом тот же результат, что и полный перебор.

Принцип:

• 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)

• Подсчёт победителя и завершение игры