МИНОБРНАУКИ РОССИИ
Федеральное
государственное бюджетное образовательное
учреждение высшего образования
НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ им. Р.Е.АЛЕКСЕЕВА
Институт радиоэлектроники и информационных технологий
Кафедра информатики и систем управления
Написать программу, играющую в игру «УГОЛКИ»
(наименование темы проекта или работы)
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по дисциплине
Технология программирования
(наименование дисциплины)
РУКОВОДИТЕЛЬ:
________________ ___Капранов С. Н. __
(подпись) (фамилия, и.,о.)
СТУДЕНТ:
________________
(подпись) (фамилия, и.,о.)
Работа защищена «___» ____________
С оценкой ________________________
Нижний Новгород 2024
Оглавление
Текст задачи 3
Игра Углоки 3
Описание вычисления ОФ 4
Пример расчета ОФ 5
Программный код с комментариями 6
Текст задачи
Написать программу, играющую в игру «Уголки». Разработать оценочную функцию.
Игра Углоки
Уголки — настольная логическая игра на квадратном поле размером 8x8 клеток для двух участников.
Цель игры переставить все свои шашки в дом соперника. Игрок, сделавший это первым, выигрывает. Однако, если второй игрок закончил перестановку в тот же ход, что и первый игрок, то игрокам потребовалось равное количество ходов. В этом случае засчитывается ничья.
Каждый игрок может за один ход переместить одну шашку. Шашки можно перемещать на соседнюю пустую клетку или шашки могут перепрыгивать через свои или чужие шашки. Перепрыгивать и перемещать можно по вертикали и по горизонтали. Прыжки могут быть через одну шашку.
Игра завершается, если выполнено одно из следующих условий:
Один из игроков переместил все свои шашки в дом соперника. Этот игрок выиграл игру.
Один из игроков всё ещё имеет несколько своих шашек в своём доме и при этом сделал больше чем 40 ходов. Этот игрок проигрывает игру.
Игрок также проигрывает игру, если он поставил одну из своих шашек обратно в свой дом после 40-го хода.
Игрок также проигрывает если после 80 хода количество его шашек вне дома больше чем у соперника.
Последние два правила предотвращают блокировку игроком клеток в своём доме с целью помешать сопернику переместить свои шашки туда.
Описание вычисления оф
Для разработки оценочной функции в игре в уголки необходимо учитывать ряд основных факторов, которые влияют на позицию игроков и их шансы на победу. Оценочная функция может помочь оценивать текущую игровую ситуацию и принимать правильные решения во время игры.
Основные элементы, которые могут быть включены в оценочную функцию для игры в уголки:
Позиция шашек: Важно учитывать, где находятся шашки каждого игрока на доске. Шашки, находящиеся ближе к дому соперника, имеют больше шансов на перемещение и достижение победного угла.
Стратегический контроль: Понимание стратегического положения на доске поможет оценить, какие ходы приведут к лучшему результату на следующих этапах игры.
Из вышесказанного я распределил определенные веса, которые начисляются за игровые ситуации: За нахождение шашки вне своего дома (1 очка), за нахождение шашки у дома противника (2 очка), за нахождение шашки в доме противника (3 очка).
Данная оценочная функция реализована в виде функции EvaluationFunction, которая начисляет очки белой и черной стороне, работает следующим образом:
Начисление очков обеим сторонам за нахождение шашек вне своего дома, реализовано функцией OutsideOfHome;
Начисление очков обеим сторонам за нахождение шашек у дома противника, реализовано функцией CloseToHome;
Начисление очков обеим сторонам за нахождение шашки в доме противника, реализовано функцией InHome;
Вычисление разности очков белых и черных сторон, если результат “-”, то выигрывает черная сторона, если результат “+”, то выигрывает белая сторона
