Разработка программного обеспечения для игры "Косынка"

Автор работы: Пользователь скрыл имя, 08 Июля 2013 в 13:53, курсовая работа

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

Данная курсовая работа представляет собой результат разработки игры «Косынка» с использованием объектно-ориентированного языка программирования Java. Суть работы заключалась в правильном создании модели игры и дальнейшего ее проектирования с использованием ООП. Необходимо было научиться создавать объекты и создавать связи (взаимодействия между ними).

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

ВВЕДЕНИЕ….. ……………………………………………………………….5
1 ОПИСАНИЕ И АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ…………..……..6
1.1 Постановка задачи………………………………………………...6
1.2 Анализ предметной области……………………………………...6
1.3 Формирование требований……………………………………….7
2 ДИАГРАММЫ КЛАССОВ И ОБЪЕКТОВ….………………………….....9
2.1 Диаграмма классов……………………………………………......9
2.2 Диаграмма объектов…………………………………...……….....11
3 ОПИСАНИЕ КЛАССОВ И МЕТОДОВ………………………..……….....12
3.1 Класс Card………………………………….………………….…..12
3.2 Класс Koloda ………………….…………………………………..12
3.6 Класс Stopka ………………………………………………………12
3.6 Класс Dom ………………………………………………………...13
3.6 Класс Sdacha ……………………………………………………...13
3.6 Класс StructFind…………………………………………………..13
3.6 Класс Stol ………….……………………………………………...13
4 ПРИМЕР РЕАЛИЗАЦИИ МЕТОДА………….………….……………….15
ВЫВОД……………………………………………………………………….17
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ…………………..……..18

Файлы: 1 файл

kurs.doc

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


Аннотация

Данная курсовая работа представляет собой результат разработки игры «Косынка» с использованием объектно-ориентированного языка программирования Java. Суть работы заключалась в правильном создании модели игры и дальнейшего ее проектирования с использованием ООП. Необходимо было научиться создавать объекты и создавать связи (взаимодействия между ними).

Работа состоит из 44 листов, включает в  себя 6 рисунков, а также частично содержит программный код проекта. Также в работе приведено описание всех классов и методов игры и последовательно представлен (частично) алгоритм перемещения карт из стопки в стопку.

 

Анотація

Дана курсова робота являє собою  результат розробки гри «Косинка»  з використанням об'єктно-орієнтованої мови програмування Java. Робота полягала в правильному створенні моделі гри та в подальшому її проектуванні з використанням ООП. Необхідно було навчитися створювати об'єкти та зв’язки між ними.

Робота складається з 44 аркушів, включає в себе 6 рисунків, а також частково містить програмний код проекту. Також у роботі наведено опис усіх класів і методів гри і послідовно представлений (частково) алгоритм переміщення карт з стопки в стопку.

Annotation

This course work is the result of the development of the game "Kosinka" with the use of object-oriented programming language Java. The essence of this work was to create a correct model of the game and its further design using OOP. It was necessary to learn how to create objects and establish communication (interaction between).

The project consists of 44 sheets, includes 6 images and comprises partially project code. Also there is a description of all the classes and methods of the game and consistently represented (in part) algorithm for moving cards from pile to pile. 
СОДЕРЖАНИЕ

ВВЕДЕНИЕ….. ……………………………………………………………….5

1 ОПИСАНИЕ И АНАЛИЗ ПРЕДМЕТНОЙ   ОБЛАСТИ…………..……..6

1.1 Постановка задачи………………………………………………...6

1.2 Анализ предметной области……………………………………...6

1.3 Формирование требований……………………………………….7

2 ДИАГРАММЫ КЛАССОВ И ОБЪЕКТОВ….………………………….....9

2.1 Диаграмма классов……………………………………………......9

2.2 Диаграмма объектов…………………………………...……….....11

3 ОПИСАНИЕ КЛАССОВ  И МЕТОДОВ………………………..……….....12

3.1 Класс Card………………………………….………………….…..12

3.2 Класс Koloda ………………….…………………………………..12

3.6 Класс Stopka ………………………………………………………12

3.6 Класс Dom ………………………………………………………...13

3.6 Класс Sdacha ……………………………………………………...13

3.6 Класс StructFind…………………………………………………..13

3.6 Класс Stol ………….……………………………………………...13

4 ПРИМЕР РЕАЛИЗАЦИИ  МЕТОДА………….………….……………….15

ВЫВОД……………………………………………………………………….17

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ…………………..……..18

ПРИЛОЖЕНИЕ А………………..……………………………………...…...19

ПРИЛОЖЕНИЕ Б…………..…………………………………………...........43

ПРИЛОЖЕНИЕ В…..………………………………………………………...44

 

ВВЕДЕНИЕ

В данной курсовой работе описывается программа, написанная в соответствии с постановкой задачи по теме "Разработка программного обеспечения для игры "Косынка" по дисциплине "Объектно-ориентированное программирование".

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

 

1 ОПИСАНИЕ И АНАЛИЗ ПРЕДМЕТНОЙ   ОБЛАСТИ

1.1 Постановка задачи

Необходимо разработать  программу, реализующую игру «Косынка». В процессе реализации необходимо использовать свойства объектно-ориентированного программирования.

1.2 Анализ предметной области

Игра «Косынка»  должна реализовать сюжет известной одноименной компьютерной игры  «Косынка» . Суть игры состоит в том, во время игры требуется собрать четыре стопки карт разной масти, так что бы они шли в порядке возрастания (туз, двойка и до короля). В игре используется одна колода из 52карт. В самом начале игры мы имеем семь стопок карт – в первой стопке одна карта, во второй - две. Только верхняя карта лежит рубашкой вверх, остальные – вниз. Под стопками находятся четыре ячейки, в которые нужно собрать стопки карт, о которых говорилось выше, так называемый – дом. Карты можно перемещать между стопками только соблюдая конкретные правила, они должны идти по убыванию (туз, двойка и до короля). Например, на даму можно положить только валета, а на двойку туз. Помимо этого на черную карту можно положить только красную и наоборот. Аналогично картам перемещать можно и уже собранные стопки. Начинать заполнение ячеек дома нужно с туза. Иначе нужно перемещать карты между столбцами до тех пор, пока не будет найден туз. Что бы переместить карту в дом, достаточно перетащить ее в ячейку или щелкнуть по ней дважды.  

Также в игре «Косынка»  присутствует колода, она находится  вверху игрового поля. Из нее можно  брать карты, для этого нужно нажать клавишу «n». Если колода закончилась, то при следующем нажатии на колоду, она будет воспроизводиться заново.

Игрок должен разложить  по возрастанию все предложенные карты в четыре стопки (по количеству мастей), начиная от туза заканчивая королем. Карты одной масти должны находиться только в одной стопке. Выбирать карты можно из «раздачи», либо из семи рядов карт, в каждой из которых находится от одной до семи карт соответственно. Собравший все карты в четыре стопки игрок считается победителем.

Классификация игр делит  компьютерные игры на : шутеры, аркада, симуляторы, стратегии, приключения, головоломки (логические), текстовые. Игра «Косынка»  относится к аркадным играм. Аркада - игра, в которой игроку приходится действовать быстро, полагаясь в первую очередь на свои рефлексы и реакцию. Игровой процесс прост и не меняется в течение игры. Аркады характеризуются развитой системой бонусов: начисление очков, постепенно открываемые элементы игры и т. д.

Классификация по игрокам, в нашем случаи, подразумевает одиночную игру, т.е. рассчитана на игру в одиночку, против компьютера – однопользовательская игра. Если игру «Косынка» классифицировать по игровым платформам, то можно отметить, что в основном наше игра предназначена для персональных компьютеров.

В нашем случае игра упрощенная и состоит только из игрового поля.

Игровое поле содержит:

    • Колоду карт (раздача).
    • Четыре ячейки, в которые нужно собрать стопки карт, так называемый – дом.
    • Семь стопок карт.

Отношения «Игрового  поля» с объектами, описанными выше – композиция.

1.3 Формирование требований

Необходимо создать  игру, которая должна обеспечивать пользователю такие возможности:

  1. Возможность перемещать карту из «раздачи» в стопки.
  2. Возможность перемещать карту из стопки в стопку.
  3. Возможность перемещать карту из стопки в дом.
  4. Возможность перемещать карту из «раздачи» в дом.
  5. Возможность перемещать несколько карт из стопки в стопки.
  6. Возможность смены карт.

7. Пользователю необходимо предоставить удобную, наглядную игру. Необходимо учитывать, что когда пользователь играет в игру «Косынка», он должен различать открытые карты «раздачи» и закрытые, а также открытые и закрытые карты в стопках.

8. Необходимо создать удобный интерфейс. В игре не должно быть сбоев, зависаний и ошибок.

 

2 ДИАГРАММЫ КЛАССОВ И ОБЪЕКТОВ

2.1 Диаграмма классов

Диаграммы классов при  моделировании объектно-ориентированных  систем встречаются чаще других. На таких диаграммах показывается множество  классов, интерфейсов, коопераций и  отношений между ними.

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

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

Диаграмма классов проекта «Косынка» представлена на Рисунке 1.

Рисунок 1- Диаграмма классов проекта «Косынка»

 

2.2 Диаграмма объектов

Диаграмма объектов (Object diagram) — демонстрирует полный или  частичный снимок моделируемой системы  в заданный момент времени. На диаграмме  объектов отображаются экземпляры классов (объекты) системы с указанием текущих значений их атрибутов и связей между объектами. Диаграмма объектов моего проекта представлена ниже (рисунок 2).



 




 



 


Рисунок 2. Диаграмма объектов

 

3 ОПИСАНИЕ КЛАССОВ И МЕТОДОВ

3.1 Класс Card

Этот класс содержит описание карты, а именно масть, старшинство и состояние( рубашкой вверх или вниз).

    • Метод isBlack - возвращает значение true, если карта черной масти.
    • Метод name - возвращает именование карты (например: 7t).
    • Метод output - реализует вывод карты на экран.

3.2 Класс Koloda

Класс содержит массив из 52 карт и реализует действия с колодой: заполнить колоду значениями, перетасовать колоду, вывести на экран.

    • Метод void fillKoloda – заполняет массив карт значениями (заполняет поля «стршинтво» и «масть»).
    • Метод void peretosovat – перетасовует колоду.

3.3 Класс Stopka

Класс содержит коллекцию карт и  реализует такие операции: открытие, последней карты в стопке, получение  индекса последней и первой карты, закрытие карты.

    • Метод openLastCard – возвращает индекс последней карты в стопке.
    • Метод getLastCard – возвращает последнюю карту в стопке.
    • Метод closeCards – меняет состояние карты на закрытое.

3.4 Класс Dom

Класс содержит 4 стопки (каждая стопка относится к отдельной масти),а также метод вывода стопки на экран.

3.5 Класс Sdacha

Класс содержит 2 стопки: открытую и закрытую часть «раздачи», а также метод вывода их на экран.

3.6 Класс StructFind

Класс является вспомогательным  и выполняет функцию структуры, содержащую поля «номер стопки», «номер карты в стопке», «количество карт». Класс используется в методе findByName класса Stol.

3.7 Класс Stol

Класс, в котором реализуется  сама игра (операции над картами). Класс  содержит колоду, дом, «раздачу», коллекцию  из стопок.

    • Метод moveStopkaDom – осуществляет перемещение карты из одной из 7 стопок в дом в соответствии с мастью и старшинством.
    • Метод moveStopkaStopka – осуществляет перемещение одной или группы карт из одной стопки в другую.
    • Метод moveRazdachaStopka – осуществляет перемещение одной карты из «раздачи» в одну из 7 стопок.
    • Метод moveRazdachaDom – осуществляет перемещение одной карты из «раздачи» в дом в соответствии с мастью и старшинством.
    • Метод openNext – реализует открытие карт в «раздаче».
    • Метод findByName – находит местоположение карты по ее имени. Возвращает структуру с полями «номер стопки», «номер карты», «количество карт до края».
    • Метод loop1 – реализует последовательность действий в игре.

 

4 ПРИМЕР РЕАЛИЗАЦИИ МЕТОДА

В качестве примера я  выбрала метод moveRazdachaStopka() класса Stol. В объект Card cd помещается последняя карта из открытой «раздачи». В объект Card a помещается последняя карта из стопки, в которую мы хотим переместить cd. Карта cd помещается в выбранную стопку на карту a при таких уловиях:

    • карта a пустая (значит в стопке нет карт) и карта cd имеет старшинство «Короля» (по условию игры в пустую колоду может помещаться только «Король»)
    • карта а не пустая, масти карт а и cd противоположные, а старшинство помещаемой карты cd меньше старшинства карты а на 1

Информация о работе Разработка программного обеспечения для игры "Косынка"