Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТП_23_ИСТ_1_1_Какушкина_Ольга_Витальевна_KР_03АБ.docx
Скачиваний:
0
Добавлен:
23.06.2025
Размер:
420.18 Кб
Скачать

Руководство программиста

1. Назначение программы

Программа реализует настольную игру "Гексагон" с гексагональным (шестиугольным) полем. Это стратегическая игра для двух игроков, где один игрок управляется человеком, а второй - компьютером с искусственным интеллектом.

Основные функции:

Основные функции программы:

  • Инициализация игрового поля заданного размера (от 5x5 до 11x11)

  • Визуализация гексагональной доски в текстовом виде

  • Поддержка двух режимов ходов: размещение новой фишки и перемещение существующей

  • Реализация правил игры:

    • Размещение фишек только рядом со своими существующими фишками

    • Перемещение фишек на соседние клетки или прыжки через одну клетку

    • Переворот фишек противника, соседних с местом хода

    • При отсутствии стандартных ходов - возможность хода в любую свободную клетку

  • Реализация ИИ на основе алгоритма MiniMax с альфа-бета отсечением

  • Определение победителя по количеству фишек при заполнении доски

2. Архитектура системы

1.Основные компоненты:

  1. Класс Board - представляет игровое поле и содержит:

  • Двумерный вектор board для хранения состояния клеток

  • Методы для работы с доской:

  • place() - размещение новой фишки

  • move() - перемещение существующей фишки

  • flipAdjacentOpponentPieces() - переворот соседних фишек противника

  • getValidMoves(), getValidNewPlacements() - генерация возможных ходов

  • isGameOver(), countPieces() - проверка окончания игры и подсчет фишек

  • printBoard() - отображение доски в консоли

  • Класс AI - реализует искусственный интеллект:

    • Алгоритм MiniMax с альфа-бета отсечением

    • Оценочная функция evaluate(), учитывающая:

      • Количество фишек

      • Подвижность (количество возможных ходов)

    • Метод next() для выбора лучшего хода