Разработка программы игры в шашки

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,03 Мб
  • Опубликовано:
    2012-12-13
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программы игры в шашки

Нижегородский Государственный Технический Университет

Кафедра ИСУ











Контрольная работа

по дисциплине: «Технология программирования»

 

 










Новгород

Данная программа осуществляет игру по 2-м уровням сложности, для игры полей. Предусматривается возможность отката назад на несколько ходов. Поиск хода осуществляется компьютером с помощью α-β процедуры.

Правила игры

Правила игры в шашки достаточно просты и понятны. Существует клетчатая доска, похожая на шахматную, с белыми (светлыми) и чёрными (тёмными) клетками. Шашки обоих соперников располагаются в несколько рядов, начиная от края доски, на тёмных клетках. Первыми ходят белые. Шашки ходят только по диагонали и, соответственно могут передвигаться только по чёрным квадратам доски. Ходить обычные шашки могут только вперёд. Исключение здесь составляют лишь возможность бить шашки противника назад в некоторых разновидностях правил игры. Бить шашку соперника означает "перепрыгнуть" через неё по диагонали. В этом случае бившая шашка становится за битой, которая в свою очередь снимается с доски. Шашка, достигшая противоположного края доски, превращается в дамку. Дамка может перемещаться как вперёд, так и назад. Цель игры - заблокировать или убрать с доски все шашки противника.


Несмотря на простоту правил, существует масса разновидностей этой игры в мире. Все схожие правила шашек указаны выше. Далее начинаются хоть и местами незначительные, но различия.

Поддавки. Шашки в привычном для нас понимании.

·              Доска: 8х8 (как в шахматах);

·              Количество шашек у игрока: 12;

·              Расположение: первые 3 ряда;

·              Бить: произвольное количество шашек в любом направлении;

·              Бить назад: разрешено;

·              Дамка: передвигается на любое количество полей; если шашка била через поле превращения, она всё равно становится дамкой;

Правила соответствуют русским шашкам. Бить шашки обязательно. Цель игры - как можно быстрее снять с доски все свои шашки. Выигрывает тот, кто первым остался без фигур.

Инструкция пользователя

Для начала игры необходимо выбрать пункт File\level_(выбрать уровень сложности), затем начать играть

Инструкция программиста

В данной программе основным классом является класс LifeWidget, обеспечивающий совершение ходов, как компьютера, так и человека, и Life хранящий информацию о текущей ситуации, а также функции выполняющие ход человека\компьютера и проверяющие на правильность ход шашек\дамок. Основными алгоритмами, исполняющими задачи класса являются ai_mid(), ai_low() здесь осуществляется выбор наилучшего хода и переход к следующей игровой ситуации, mousePressEvent() выполняет обработку нажатий мыши и ход человека, paintEvent() рисует\перерисовывает игровую доску после хода компьютера\человека, также здесь хранится история ходов, которая позволяет откатить игру назад. История\указатели на следующие ходы компьютера хранятся в собственном классе Vector, который включает в себя удобное выполнение операций с одномерным массивом.

Класс Life содержит в себе, во-первых, двумерный массив объектов класс Point(который хранит информацию о положении шашки и её типе) с информацией о расположении на поле шашек, также bool массив cells, хранящий информацию о нажатиях мыши.

Основным является класс ai_Trees, в нём осуществляются алгоритма подсчета ходов, оценка ходов компьютера\человека, построение дерева поиска лучшего хода исходя из оценки функций.

Класс MainWindow это класс интерфейса программы, меню\панель кнопок отката игры\статус строка\вывод центрального виджета игры(игровой доски), также в этом классе осуществляется обработка нажатий\выбора пунктов меню. Кроме того, в классе Field содержится список свободных ячеек для задач класса и, в первую очередь, для генераторов хода.

Весь интерфейс выполнен с использованием Qt-это кросс-платформенный <#"577474.files/image002.gif">


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!