
- •Задание
- •Поставить новую шашку
- •Переставить существующую шашку
- •Описание вычисления оценочной функции
- •Формула оценки
- •1. Материальный баланс
- •2. Мобильность
- •3. Контроль центра
- •Примеры работы оценочной функции
- •Описание вычисления Альфа-Бета
- •Руководство пользователя
- •2. Требования к системе
- •3. Управление в игре
- •4. Правила игры
- •2. Архитектура системы
- •1.Основные компоненты:
- •3. Описание ключевых компонентов
- •4. Описание функций
- •4.1 Логика игры
- •4.2 Алгоритм ии
- •5. Возможные улучшения
- •Назначение
- •2. Архитектура и принципы функционирования
- •8. Техническое обслуживание
МИНОБРНАУКИ РОССИИ
Ф
едеральное
государственное бюджетное образовательное
учреждение высшего образования
НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ им. Р.Е.АЛЕКСЕЕВА
Институт радиоэлектроники и информационных технологий
Кафедра информатики и систем управления
Программа играющая в « ГЕКСАКОН »
(наименование темы проекта или работы)
Курсовая работа (3-ий этап)
по дисциплине
Технологии программирования
(наименование дисциплины)
РУКОВОДИТЕЛЬ:
________________ Капранов С. Н.
(подпись) (фамилия, и.,о.)
СТУДЕНТ:
________________ Какушкина О.В.
(подпись) (фамилия, и.,о.)
23-ИСТ-1-1
(шифр группы)
Работа защищена «___» ____________
С оценкой ________________________
Нижний Новгород 2025
Задание
Поле состоит из 6-гранных клеток. Размер поля – по выбору.
Два игрока ходят по очереди. Возможны ходы:
1) Поставить новую свою шашку на любую свободную из 6 клеток, смежных со своей шашкой.
2) Переставить свою шашку на любую свободную клетку, смежную с клетками, смежными с прежним положением этой шашки.
В любом случае, если на клетках, смежных с новым положением своей шашки, есть шашки противника, они заменяются на свои.
Игра заканчивается, когда все клетки заняты. Выигрывает тот, кто занял больше клеток.
Цель игры:
Захватить больше клеток на поле, чем противник, к моменту, когда всё поле будет заполнено.
Игровое поле
Состоит из шестиугольных клеток (гексов).
Размер поля выбирается перед игрой (например, 5×5, 7×7 и т. д.).
Участники
Два игрока, каждый играет своим цветом (например, чёрные и белые).
Начальная расстановка
Первый игрок ставит одну свою шашку в любую клетку поля.
Второй игрок ставит свою шашку в любую другую клетку.
Ход игры
Игроки ходят по очереди. В свой ход можно выполнить одно из двух действий:
Поставить новую шашку
Разместить свою шашку на любую свободную клетку, смежную (соседнюю) с хотя бы одной своей шашкой.
Переставить существующую шашку
Переместить одну свою шашку на любую свободную клетку, которая:
Находится на расстоянии 1 клеток от её текущего положения (т. е. смежна с клетками, смежными с исходной позицией шашки).
Не может остаться на месте.
Захват шашек противника
После любого хода (постановки или перестановки):
Все шашки противника, находящиеся на клетках, смежных с новой позицией шашки, перекрашиваются в цвет текущего игрока.
Окончание игры
Игра заканчивается, когда все клетки поля заняты. Побеждает игрок, чьих шашек на поле больше.
Описание вычисления оценочной функции
Оценочная функция Evaluate(Board board, Player player) определяет, насколько выгодна текущая позиция для игрока player. Она учитывает:
Количество фишек (материальный баланс).
Мобильность (количество доступных ходов).
Контроль центра (фишки ближе к центру ценятся выше).
Формула оценки
Оценка = (Фишки_игрока - Фишки_противника) + (Мобильность_игрока - Мобильность_противника) / 2 + Бонус_за_центр
1. Материальный баланс
Считается разница между фишками игрока и противника.
Пример:
У игрока B — 10 фишек, у W — 8.
Вклад: 10 - 8 = +2.
2. Мобильность
Количество возможных ходов игрока минус ходы противника (с понижающим коэффициентом 0.5).
Пример:
Игрок B может сходить 5 способами, W — 3.
Вклад: (5 - 3) / 2 = +1.
3. Контроль центра
Фишки в центральных клетках получают бонус +3, на краях — +1.
Пример:
У игрока B 2 фишки в центре и 3 на краю.
Вклад: 2*3 + 3*1 = +9.
Примеры работы оценочной функции
Начальное состояние:
0 1 2 3 4
0 + + + + +
1 + + + + +
2 + + B + +
3 + + + + +
4 + + + + +
Ход 1: Белые (W) делают оптимальный ход
Доступные ходы W:
Поставить фишку рядом с любой своей фишкой (пока нет - первый ход)
Поставить в любую свободную клетку (по правилам первого хода)
Выбираем (2,2) - центр уже занят B, поэтому ставим в (0,2):
0 1 2 3 4
0 + + W + +
1 + + + + +
2 + + B + +
3 + + + + +
4 + + + + +
Оценка позиции W:
Материал: B=1, W=1 → 0
Мобильность: W - 3 хода (рядом с (0,2)), B - 6 ходов → (3-6)/2 = -1.5
Контроль центра: W=0, B=+3 → -3 Итог: 0 - 1.5 - 3 = -4.5
Ход 2: Чёрные (B) усиливают позицию
Оптимальный ход B - (2,3):
0 1 2 3 4
0 + + W + +
1 + + + + +
2 + + B B +
3 + + + + +
4 + + + + +
Оценка позиции B:
Материал: B=2, W=1 → +1
Мобильность: B - 5 ходов, W - 3 → (5-3)/2 = +1
Центр: B=+3 (2,2) + +1 (2,3) → +4 Итог: 1 + 1 + 4 = +6
Ход 3: Белые (W) защищаются
Лучший ход W - (1,2):
0 1 2 3 4
0 + + W + +
1 + + W + +
2 + + B B +
3 + + + + +
4 + + + + +
Оценка позиции W:
Материал: B=2, W=2 → 0
Мобильность: W - 4 хода, B - 5 → (4-5)/2 = -0.5
Центр: W=+1 (1,2), B=+4 → -3 Итог: 0 - 0.5 - 3 = -3.5
Ход 4: Чёрные (B) атакуют
Оптимальный ход B - (3,2):
0 1 2 3 4
0 + + W + +
1 + + W + +
2 + + B B +
3 + + B + +
4 + + + + +
Оценка позиции B:
Материал: B=3, W=2 → +1
Мобильность: B - 6 ходов, W - 3 → (6-3)/2 = +1.5
Центр: B=+3 (2,2) + +1 (3,2) → +4 Итог: 1 + 1.5 + 4 = +6.5
Итог после 4 ходов:
Чёрные контролируют центр и имеют преимущество в мобильности
Белые вынуждены защищаться на периферии
Оценка показывает устойчивое преимущество B (+6.5 против -3.5 у W)