
- •Поставить новую шашку
- •Переставить существующую шашку
- •Описание вычисления оценочной функции
- •Формула оценки
- •1. Материальный баланс
- •2. Мобильность
- •3. Контроль центра
- •Примеры работы оценочной функции
- •Описание вычисления Альфа-Бета
- •Руководство пользователя
- •Руководство программиста
- •2. Архитектура системы
- •1.Основные компоненты:
- •3. Описание ключевых компонентов
- •2. Класс ai (Искусственный интеллект)
- •4. Описание функций
- •4.1 Логика игры
- •4.2 Алгоритм ии
- •5. Возможные улучшения
- •Руководство системного администратора
- •2. Архитектура и принципы функционирования
- •3. Системные требования
- •4. Установка программы
- •5. Административные функции
- •6. Проверка работоспособности
- •7. Возможные ошибки и их устранение
- •8. Техническое обслуживание
Руководство программиста
1. Назначение программы
Программа реализует настольную игру "Гексагон" с гексагональным (шестиугольным) полем. Это стратегическая игра для двух игроков, где один игрок управляется человеком, а второй - компьютером с искусственным интеллектом.
Основные функции:
Основные функции программы:
Инициализация игрового поля заданного размера (от 5x5 до 11x11)
Визуализация гексагональной доски в текстовом виде
Поддержка двух режимов ходов: размещение новой фишки и перемещение существующей
Реализация правил игры:
Размещение фишек только рядом со своими существующими фишками
Перемещение фишек на соседние клетки или прыжки через одну клетку
Переворот фишек противника, соседних с местом хода
При отсутствии стандартных ходов - возможность хода в любую свободную клетку
Реализация ИИ на основе алгоритма MiniMax с альфа-бета отсечением
Определение победителя по количеству фишек при заполнении доски
2. Архитектура системы
1.Основные компоненты:
Класс Board - представляет игровое поле и содержит:
Двумерный вектор board для хранения состояния клеток
Методы для работы с доской:
place() - размещение новой фишки
move() - перемещение существующей фишки
flipAdjacentOpponentPieces() - переворот соседних фишек противника
getValidMoves(), getValidNewPlacements() - генерация возможных ходов
isGameOver(), countPieces() - проверка окончания игры и подсчет фишек
printBoard() - отображение доски в консоли
Класс AI - реализует искусственный интеллект:
Алгоритм MiniMax с альфа-бета отсечением
Оценочная функция evaluate(), учитывающая:
Количество фишек
Подвижность (количество возможных ходов)
Метод next() для выбора лучшего хода