Описание программного продукта - игра «Реверси»

Автор работы: Пользователь скрыл имя, 13 Июня 2014 в 14:32, курсовая работа

Описание работы

В данной работе описывается игра «Реверси», написанная в соответствии с постановкой задачи на курсовой проект по предмету «Теория создания программного продукта».
Всегда с момента появления первых ПЭВМ существовал интерес пользователей к каким-либо компьютерным играм. Существуют как сложные компьютерные игры, так и относительно простые. Реверси - относительно несложная логическая игра. Основанием для разработки явилось выполнение курсовой работы.

Содержание работы

Введение……………………………………………………………………………5
Техническое задание………………………………………………………………5
История игры………………………………………………………………………5
Сюжет игры………………………………………………………………………..5
Описание программы……………………………………………………………..6
Алгоритм…………………………………………………………………………...7
Руководство пользователя………………………………………………………...8
Описание компонент программы…………………………………………………9
Заключение………………………………………………………………….…….10
Список используемой литературы……………………………………………...11

Файлы: 1 файл

Одобреное описание на 5.doc

— 192.00 Кб (Скачать файл)

 


 


        

 
   

 

 
 

 

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

"Московский государственный  технический университет радиотехники,

электроники и автоматики"

МГТУ МИРЭА

_________________________________________________________________________

(наименование факультета)

_________________________________________________________________________

(наименование кафедры)


 

КУРСОВОЙ ПРОЕКТ (РАБОТА)

по дисциплине

«______________________________________________________»

(наименование дисциплины)

Тема курсового проекта (работы) «__________________________________________»

                                                                     (наименование темы)

Студент группы ____________________

                            (учебная группа)

Фамилия И.О

Руководитель курсового проекта (работы)

должность, звание, ученая степень

Фамилия И.О

Рецензент (при наличии)

должность, звание, ученая степень

Фамилия И.О

   

 

Работа представлена к защите

«__»_______201___ г.

 

(подпись студента)

     

«Допущен к защите»

«__»_______201___ г.

 

(подпись руководителя)


 

 

 

 

 

 

 

 

 

 

 

 

Москва 2014

 

 

 

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

"Московский государственный  технический университет радиотехники,

электроники и автоматики"

МГТУ МИРЭА

_________________________________________________________________________

(наименование факультета)

_________________________________________________________________________

(наименование кафедры)

 

Утверждаю

 

Заведующий

кафедрой______________И.О. Фамилия

 

«____» __________201___ г.

 

ЗАДАНИЕ

на выполнение  курсового проекта (работы)

по дисциплине «___________________________________________________________

 

Студент _________________________________________________Группа____________

      • Тема _____________________________________________________________________
  • Исходные данные:
 
 
 
    • Перечень вопросов, подлежащих разработке, и обязательного графического материала:
 
 
 
  • Срок представления к защите курсового проекта (работы): до «___» _______201_ г.
 

Задание на курсовой

проект, (работу) выдал

«___»______201__г.

Подпись руководителя

проекта

Ф.И.О. руководителя

проекта

Задание на курсовой

проект, (работу) получил

«___»______201__г.

Подпись студента –

исполнителя проекта

Ф.И.О. студента -

исполнителя

проекта


 

 

 

 

 

 

 

 

 

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

"Московский государственный  технический университет радиотехники,

электроники и автоматики"

МГТУ МИРЭА

_________________________________________________________________________

(наименование факультета)

_________________________________________________________________________

(наименование кафедры)


 

Протокол заседания комиссии по защите курсового проекта

от ________________201__г.  №__________

Состав комиссии:______________________________________________________________________

______________________________________________________________________

(должность, ученая степень, ученое  звание)

 

Утверждена распоряжением заведующего кафедрой ________________________________________

(наименование кафедры)

от «___» ________ 201_ г. №________.

Слушали защиту курсового проекта (работы) ____________(тема)____________________________

____________________________________________________________________________________________

по дисциплине _______________________________________________________________________________

студента группы______________________________________________________________________________

(группа)         (Ф.И.О.)

 

Во время защиты курсового проекта (работы) были заданы следующие вопросы:

1 _____________________________________________________________________________

2. _____________________________________________________________________________

3. _____________________________________________________________________________

Итоговая (комплексная) оценка выполнения и защиты курсового проекта (работы) _____________________

Члены комиссии    ____________________________________________

____________________________________________

(подпись)                                       (Ф.И.О.)

 

 

 

 

 

 

Содержание:

Введение……………………………………………………………………………5

Техническое задание………………………………………………………………5

История игры………………………………………………………………………5

Сюжет игры………………………………………………………………………..5

Описание программы……………………………………………………………..6

Алгоритм…………………………………………………………………………...7

Руководство пользователя………………………………………………………...8

Описание компонент программы…………………………………………………9

Заключение………………………………………………………………….…….10

Список используемой литературы……………………………………………...11

Приложение…...…………………………………………………………………..12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

 

    В данной работе описывается  игра «Реверси», написанная в  соответствии с постановкой задачи  на курсовой проект по предмету  «Теория создания программного продукта».

    Всегда с момента появления первых ПЭВМ существовал интерес пользователей к каким-либо компьютерным играм. Существуют как сложные компьютерные игры, так и относительно простые.  Реверси - относительно несложная логическая игра. Основанием для разработки явилось выполнение курсовой работы.

 

Техническое задание

 

    Целью работы является  закрепление знаний по дисциплине  «Теория создания программного  продукта», которое осуществляется  посредством создания игры «Реверси», предназначенной для развлечения  и совершенствования мыслительных способностей игрока.

 

История игры

 

Игра была изобретена в Великобритании в 1180 году и пользовалась большой популярностью, но впоследствии была забыта. Возродили её в Японии, где она в 1971 году под названием “отелло” вновь стала популярна. С 1977 года регулярно проводятся чемпионаты мира по игре в реверси.

 

Сюжет игры

 

В игре используется квадратная доска размером 10*10 клеток (все клетки могут быть одного цвета) и 100 фишек, схожих по форме и размерам с фишками для игры в нарды или шашки. Фишки с двух сторон окрашены в контрастные цвета, например черный и белый. Фишки делятся поровну между двумя игроками. Один из из игроков играет белыми, другой — чёрными. Игра начинается с того, что на центр доски ставят 2 черные и 2 белые фишки.

  • Первый ход делают белые. Далее игроки ходят по очереди.
  • Фишки ставятся так, чтобы непрерывный ряд фишек соперника оказался «закрыт» фишками игрока с двух сторон. Все фишки соперника, входящие в «закрытый» на этом ходу ряд, переворачиваются на другую сторону (меняют цвет) и переходят к ходившему игроку.
  • Игрок вправе выбирать любой из возможных для него ходов. Если игрок имеет возможные ходы, он не может отказаться от хода. Если игрок не имеет допустимых ходов, то ход передаётся сопернику.
  • Игра прекращается, когда на доску выставлены все фишки или когда ни один из игроков не может сделать хода. По окончании игры проводится подсчёт фишек каждого цвета, и игрок, чьих фишек на доске выставлено больше, объявляется победителем. В случае равенства количества фишек засчитывается ничья.

 

Описание программы

 

Игра проводится на одном компьютере и управляется только левой кнопкой устройства (мыши). Клавиатура в игре не используется.

  1. Описание окна. При запуске игры на экране появляется окно размера 600*600, в котором находятся:
  • Одна опционная кнопка “New game”,отвечающая за сброс старой игры и начало новой.
  • Игровое поле 10*10 клеток. Также присутствуют 22 линии, разделяющие поле на клетки.
  • 4 фишки (по 2 на каждого игрока), которые в соответствии с правилами игры, расставлены строго по диагонали квадрата в центре доски. Белые фишки ставятся на клетки с номерами 5*5 и 6*6. Черные- на клетки 5*6 и 6*5.
  1. В игре участвуют два игрока, которые поочередно делают ход с помощью мыши, которую они передают друг другу для того, чтобы сделать свой ход.
  1. Игрок может ставить свою фишку в соответствии с определенными правилами: делая ход, игрок должен поставить свою фишку на одну из клеток доски таким образом, чтобы между этой поставленной фишкой и одной из имеющихся уже на доске фишек его цвета находился непрерывный ряд фишек соперника, горизонтальный, вертикальный или диагональный. Если в результате одного хода «закрывается» одновременно более одного ряда фишек противника, то переворачиваются все фишки, оказавшиеся на всех «закрытых» рядах.

 

 

 

 

 

Алгоритм

Для компьютера эта игра является достаточно простой и хорошие программы без особого труда обыгрывают даже чемпионов среди людей. Данное качество достигается на данном этапе развития техники алгоритмом альфа-бета отсечения, с использованием большой базы данных уже прошедших партий. В игре существует порядка 10^28 позиций, и около 10^58 возможных партий.

 

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

Альфа-бета отсечение (англ. Alpha-beta pruning) — это алгоритм поиска, стремящийся сократить количество узлов, оцениваемых в дереве поиска алгоритмом минимакс. Этот алгоритм предназначен для антагонистических игр и используется для машинной игры (в шахматах и других). В основе алгоритма лежит идея, что оценивание ветви дерева поиска может быть досрочно прекращено (без вычисления всех значений оценивающей функции), если было найдено, что для этой ветви значение оценивающей функции в любом случае хуже, чем вычисленное для предыдущей ветви. Альфа-бета отсечение является оптимизацией, так как результаты работы оптимизируемого алгоритма не изменяются.

 

Преимущество альфа-бета отсечения фактически заключается в том, что некоторые из ветвей подуровней дерева поиска могут быть исключены после того, как хотя бы одна из ветвей уровня рассмотрена полностью. Так как отсечения происходят на каждом уровне вложенности (кроме последнего), эффект может быть весьма значительным. На эффективность метода существенно влияет предварительная сортировка вариантов (без перебора или с перебором на меньшую глубину) — при сортировке чем больше в начале рассмотрено «хороших» вариантов, тем больше «плохих» ветвей может быть отсечено без исчерпывающего анализа. минимаксный поиск осуществляется в глубину, поэтому в любой момент времени достаточно рассматривать узлы вдоль единственного пути в дереве. Алгоритм альфа-бета-отсечения получил свое название по следующим двум параметрам, которые представляют пределы в зарезервированных значениях, присутствующих во всех узлах вдоль этого пути: а = значение наилучшего варианта (т.е. варианта с самым высоким значением), который был до сих пор найден в любой точке выбора вдоль пути для игрока МАХ; Р = значение наилучшего варианта (т.е. варианта с самым низким значением), который был до сих пор найден в любой точке выбора вдоль пути для игрока MIN. Алгоритм альфа-бета-поиска в процессе своей работы обновляет значения а и Р, а также отсекает оставшиеся ветви в узле (т.е. прекращает рекурсивные вызовы), как только становится известно, что значение текущего узла хуже по сравнению с текущим значением а или Р для игрока МАХ или MIN соответственно.

Руководство пользователя

 

Для работы с программой необходимо активизировать её. Для этого нужно активировать программу. Откроется рабочее окно приложения.

Оно состоит из элементов:

  • Игровое поле, где находятся фишки игрока и противника.
  • Поле подсчёта очков (количества фишек).
  • Кнопка начала новой игры.

 

Затем нажимая левой клавишей мыши на игровом поле делаем ходы, ставя свои фишки, руководствуясь стандартными правилами игры. Игра продолжается до тех пор, пока всё поле не будет заставлено фишками игрока и противника. Затем программа предлагает начать новую игру.

 

 

 

 

Описание компонент программы

Классы

При запуске программы активируется класс QApplication, который руководит управляющей логикой и основными настройками.

QApplication содержит основной цикл  событий, в котором все события от оконной системы и других источников обрабатываются и координируются. Он также обрабатывает инициализацию и завершение приложения и обеспечивает управление сессиями. Кроме того, QApplication обрабатывает большинство общесистемных и общепрограммных настроек.

После Qapplication активируется класс QMainWindow, который открывает на экране главное окно приложения.

Класс QWidget является базовым для всех объектов пользовательского интерфейса.

Виджет - это элементарный объект пользовательского интерфейса: он получает события мыши, клавиатуры и другие события от оконной системы и рисует свое изображение на экране. Каждый виджет имеет прямоугольную форму.

Класс Field отвечает за размер и состояние игрового поля, обработку сигнала нажатия клетки, сброс поля в начальное состояние при перезапуске игры.

Qmenubar Унаследован от QWidget. Строка меню состоит из списка горизонтального меню.

Класс QAction предоставляет абстрактное действие пользовательского интерфейса, которое может быть вставлено в виджеты.

Класс Dot отвечает за установку и возвращение состояния клетки, возвращение индекса строки и столбца клетки, прорисовку и координаты клетки.

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

Класс QPainter выполняет низкоуровневое рисование на виджетах и ​​других устройствах рисования.

QPainter предоставляет оптимизированные функции, чтобы сделать большую часть программы для рисования в GUI приложениях. Он может сделать все, от простых линий до сложных форм. Она также может вырисовывать выровненный текст и растровые изображения. Как правило, он рисует в “естественной” системе координат.

Информация о работе Описание программного продукта - игра «Реверси»