Компьютерная аркадная игра "Spaceboll" в режиме компьютер-игрок

Программная реализация игры, необходимость наличия файла Arcanoid.exe. Список файлов, технические требования, состав программы. Алгоритм игры. Основные достоинства данного программного продукта, системные требования и руководство пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.12.2011
Размер файла 753,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

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

2. Решение задачи

3. Описание программного обеспечения

3.1 Программная реализация

3.2 Общие сведения

3.2.1 Список файлов

3.2.2 Технические требования

3.3 Алгоритм

3.4 Состав программы

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

Приложение А Руководство системного программиста

Приложение Б Руководство пользователя

ВВЕДЕНИЕ

Данная программа представляет собой полностью реализованную компьютерную аркадную игру «Spaceboll» в режиме компьютер-игрок. Целью этой игры является прохождение максимально большого количества уровней и набора максимального количества очков. Уровень считается пройденным, если удалось разбить все кирпичи на поле отраженным ударами шариком.

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

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

При написании программы были поставлены следующие задачи:

- программа должна иметь поле, где будут расставлены выбиваемые кирпичи и ракетка с шариком;

- реализовать меню, включающее в себя выбор уровня, начало игры, таблицу рекордов и выход из игры;

- реализовать движение ракетки с шариком влево и вправо, не разрешая выход за границы игрового поля;

- рассчитать угол отражения шарика, в зависимости от места его падения на ракетку;

- предусмотреть наличие кирпичей, которые будут выбиваться с двух раз;

- программа предоставляет пользователю возможность выбора уровня;

- в любой момент игры ее можно приостановить или выйти из нее.

2. Решение задачи

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

При запуске программы пользователю предоставляется меню, с помощью которого он может выбрать нужный ему раздел (рисунок 1). Для осуществления простоты навигации и ”лёгкого” интерфейса предусмотрены вложенные подменю. После завершения работы программа возвращается в главное меню.

Рисунок 1 - Главное меню, новая игра

3. Описание программного обеспечения

3.1 Программная реализация

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

Также прописаны карты, созданные нами (рисунок 2).

Рисунок 2 - Выбор карты

Данный программный продукт предусматривает наличие файла: Arcanoid.exe.

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

Перемещение шарика осуществляется по координатам x и y (учитывается количество жизней):

ball.x+=ball_d.x; //перемещение мячика

ball.y+=ball_d.y;

if(ball.y+ball_s/2>400) //если мяч упал до низа (проигрыш)

{

heals--; // -1 жизнь

label1->Text="x"+Convert::ToString(heals); //обновляем отображение жизней

if(heals) //если еще есть жизни

{

board.set((400-board_w)/2,400-board_h);//перемещаем доску и мяч в исходное состояние

ball.set(400/2,300);

ball_d.set(0,4); //задаем направление мяча

}

else

{

timer2->Stop();//останавливаем таймер игры

textBox2->Visible=1;//делаем видимое поле для ввода имени

}

}

if(ball.x+ball_s/2>400 || ball.x-ball_s/2<0) //отскок мяча от левой и правой стенок

{

ball_d.x*=-1; //меняем направление по Х

}

if(ball.y-ball_s/2<0)//отскок мяча от потолка

{

ball_d.y*=-1;

}

if(ball.y+ball_s/2>board.y && ball.x>board.x && ball.x<board.x+board_w)//удар мяча об доску

{

float x;

x=(((ball.x-board.x)*600)/(board_w*100))-3; // изменяем угол отражения (сильнее или слабее) на значение от -3 до 3

ball_d.x+=x;

if(ball_d.x>3)//если приращение по модулю больше 3

ball_d.x=3;

if(ball_d.x<-3)

ball_d.x=-3;

ball_d.y=4-abs(ball_d.x);//преращение по У расчитываем как 4(скорость) - приращенеи по Х

ball_d.y*=-1;//и меняем направление

}

3.2 Общие сведения

Наименование программы: логическая игра с целью преодоления препятствий «Spaceboll».

Разработчик: Полякова О.С., ИКИТ СФУ, ФИВТ, КИ 10-15.

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

Получается, что, играя в логические игры, активизируется мышление игрока.

3.2.1 Список файлов

batut.exe - файл для запуска программы.

batut.sln - файл проекта на языке C++.

Resources - папка с ресурсами для игры (картинки, звуки).

3.2.2 Технические требования

Процессор: Pentium IV и выше

RAM: 16Mb и выше

Видеокарта: 4Mb и выше

Свободное дисковое пространство: 40Mb

3.3 Состав программы

struct XY - структура координат поля игры.

board, ball - координаты шарика и ракетки, приращения их движения.

board_d, ball_d - приращени движения шарика и ракетки.

static int Score - счет, для записи в таблицу рекордов.

static int heals - количество жизней.

array<String^>^ file - массив уровней.

static int **bricks; - массив из выбиваемых кирпичей.

Results=new rec[11] - массив результатов.

В данном фрагменте кода рисуются кирпичи (блоки). Описывается выбивание кирпичей, осуществляется пересчет очков и определяется направление шарика, после удара о блок:

int left,right,top,bottom,i,j;

int b_r=ball_s/2;

SolidBrush^ Brick_Brush = gcnew SolidBrush(Color::Green); //кисть для блоков

Pen^ Brick_Pen=gcnew Pen(Color::DarkGreen); //кисть для обводки блоков

bool can_change=1; for(i=0;i<10;i++) //проход по массиву с блоками

{for(j=0;j<10;j++)

{ top=i*brick_h; //опеределение границ текущего блока

bottom=top+brick_h;

left=j*brick_w;

right=left+brick_w;

if((ball.x-b_r<right && ball.x+b_r>left)&&(ball.y+b_r>top && ball.y-b_r<bottom)) //если мячик коснулся блока

{ if(bricks[i][j]==2) //если блок типа 2

{ bricks[i][j]=1; //делаем его типом 1

Score+=100; //добавляем 100 очков

textBox1->Text=Score.ToString();

if(can_change)//если за текущее перемещение мяча он еще не был отражен

{if(ball.x+b_r>left && ball.x+b_r<left+5) //определяем сторону блока, куда коснулся мяч

{

ball_d.x*=-1;//отскок мяча

}

if(ball.x-b_r<right && ball.x-b_r>right-5)

{

ball_d.x*=-1;

}

if(ball.y+b_r>top && ball.y+b_r<top+5)

{

ball_d.y*=-1;

}

if(ball.y-b_r<bottom && ball.y-b_r>bottom-5)

{

ball_d.y*=-1;}

can_change=0; //больше за текущее перемещение мяча, мы не сможем поменять его направление

}

} else

if(bricks[i][j]==1) //если тип блока 1

{coutn--;//вычитаем из количества блоков 1

bricks[i][j]=0;//убираем его

Score+=100;

textBox1->Text=Score.ToString();

if(can_change) {

if(ball.x+b_r>left && ball.x+b_r<left+5)

{

ball_d.x*=-1;

}

if(ball.x-b_r<right && ball.x-b_r>right-5)

{ ball_d.x*=-1;

}

if(ball.y+b_r>top && ball.y+b_r<top+5)

{

ball_d.y*=-1;

}

if(ball.y-b_r<bottom && ball.y-b_r>bottom-5)

{

ball_d.y*=-1;

}

can_change=0;

}

}

}

if(bricks[i][j]!=0) //если блок не 0, т.е. есть

{

switch(bricks[i][j]) //выбор типа блока

{

case 1:

Brick_Brush->Color=Color::Green; //рисуем зеленым

g->FillRectangle(Brick_Brush,left,top,brick_w,brick_h);

break;

case 2:

Brick_Brush->Color=Color::Blue; //и синим соответственно

g->FillRectangle(Brick_Brush,left,top,brick_w,brick_h);

break;

}

g->DrawRectangle(Brick_Pen,left,top,brick_w,brick_h); //и обводим этот блок

}

}

}

3.4 Алгоритм

При запуске программы открывается окно игры с заставкой (рисунок 1). Сверху имеется вкладка «Игра», включающаяся в себя разделы «Новая игра», «Результаты» и «Выход». Зайдя в раздел «Новая игра», можно выбрать уровень, либо начать игру сначала. При выборе «Играть!» в разделе «Новая игра», начинается игровой процесс, где пользователю предстоит, управляя отскакивающим от ракетки шариком, разбивать кирпичи (рисунок 3).

Рисунок 3 - Начало игры

Рисунок 4 - Игровой процесс

При прохождении игры или проигрыше открывается поле для ввода имени, куда можно вписать свое имя, для того, чтобы впоследствии его можно было найти в таблице рекордов (рисунок 5).

Рисунок 5 - Запись в таблицу рекордов

После ввода имени откроется окно с лучшими результатами предыдущих игроков (рисунок 6). Также таблицу рекордов можно посмотреть, зайдя в раздел «Игра»/ «Результаты». При нажатии «Выйти» программа закрывается.

Рисунок 6 - Просмотр таблицы рекордов

· Главное меню

o Новая игра

§ Выбор карты

· Автоматический выбор карты, начиная с первой

· Выбор вручную

§ Игровой процесс

§ Запись в таблицу рекордов

o Просмотр таблицы рекордов

o Выход из игры

игра программа arcanoid алгоритм

ЗАКЛЮЧЕНИЕ

Разработанный программный продукт удовлетворяет всем указанным в начале отчета требованиям.

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

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

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

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1. Егорова, Е.В. Программирование на языке высокого уровня. Часть II: учеб. Е.В. Ползунова. - Барнаул: изд-во Дрофа, 1998 - 176 с.

2. Павловская, Т.А. С/С++ программирование на языке высокого уровня: учеб. / Т.А. Павловская. - СПб.: изд-во Питер, 2009 - 203 с.

3. Лафоре, Р. Объектно-ориентированное программирование в С++, классика Computer Science. / Р. Лафоре. - СПб.: изд-во Питер, 2004 - 187 с.

4. Давыдов, В.Г. Технологии программирования С++ / В.Г. Давыдов - СПб.: изд-во БХВ-Петербург, 2005 - 305 с.

5. Шилдт, Г. С/С++. Справочник программиста / Г.Шилдт. - М.: изд-во Вильямс, 2007 - 593 с.

Приложение А

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

Для установки программы: скопируйте файл «Arcanoid.exe» и папку Resources на жесткий диск компьютера.

Системные требования: Microsoft Windows XP и выше, процессор Pentium IV или выше. 16 Мб оперативной памяти, 40 Мб свободного пространства на жестком диске.

Для Windows Vista/7 необходимо запускать программу с правами администратора.

Приложение Б

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

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

Для навигации по меню используется мышь.

Для процесса игры используются клавиши (стрелки, ввод).

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

Начисление очков:

Зеленый блок: пополняет ваш счет на 100.

Синий блок: пополняет ваш счет на 200.

Количество жизней: 3

Размещено на Allbest.ru


Подобные документы

  • Разработка программы казуальной игры "Zuma Deluxe" на языке С\С++. Использование стиля древних инков и ацтеков, возможностей графического движка HGE version 1.53. Назначение основных классов игры. Руководство пользователя, содержание главного меню.

    курсовая работа [8,3 M], добавлен 28.10.2014

  • Особенности разработки компьютерной игры, в которой проводится чемпионат по волейболу. Список переменных и типов данных. Разработка текстового и графического алгоритма. Разбор основных этапов игры на примере. Основные положения руководства пользователя.

    курсовая работа [976,9 K], добавлен 09.06.2016

  • Приемы программирования в Delphi. Алгоритм поиска альфа-бета отсечения, преимущества. Описание программного средства. Разработка программы, реализующая алгоритм игры "реверси". Руководство пользователя. Листинг программы. Навыки реализации алгоритмов.

    курсовая работа [357,1 K], добавлен 28.02.2011

  • Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя.

    курсовая работа [1,5 M], добавлен 17.01.2011

  • Описание алгоритма хода ЭВМ в режиме "пользователь-компьютер" в игре "Морской бой". Описание совокупности классов, их полей и методов. Разработка интерфейса и руководства пользователя по проведению игры. Листинг программы, написанной на языке Java.

    курсовая работа [645,0 K], добавлен 26.03.2014

  • Описание принципа развивающей игры в слова "Виселица". Разработка программы, реализующей задачу данной игры на языке Delphi. Обоснование выбора среды программирования, листинг файла, результаты отладки и тестирования, руководство для пользователя.

    курсовая работа [572,7 K], добавлен 14.07.2012

  • Знакомство с интерфейсом пользователя и сценарием использования программы игры в крестики и нолики. Функциональные и нефункциональные требования для персонального компьютера. Исключительные ситуации и реакция программы. Пример кода игры и комментарии.

    курсовая работа [236,5 K], добавлен 27.01.2014

  • Технические и пользовательские характеристики игры, требования к программному обеспечению и среде разработки C#. Составление блок-схемы алгоритма, uml-диаграммы и текста программы, тестирование корректности компьютерного кода и результатов его работы.

    курсовая работа [1,8 M], добавлен 05.03.2013

  • Проектирование игры "Морской бой" путем составления диаграмм UML, IDEF0, DFD, моделирующих требования к программе. Разработка программы с использованием языка C# и фреймворка.NETFramework 3.5. Тестирование белого ящика и альфа-тестирование продукта.

    курсовая работа [3,9 M], добавлен 24.10.2013

  • Разработка компьютерной игры "Эволюция" с помощью игрового движка Unit. Сравнение критериев игры-аналога и разрабатываемой игры. Разработка графического интерфейса пользователя. Настройки камеры в редакторе Unity. Структура файла сохранения игры.

    дипломная работа [3,6 M], добавлен 11.02.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.