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

 

СОДЕРЖАНИЕ


ВВЕДЕНИЕ

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

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

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

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

.2 Общие сведения

.2.1 Список файлов

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

.3 Алгоритм

.4 Состав программы

ЗАКЛЮЧЕНИЕ

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

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

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


ВВЕДЕНИЕ


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

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


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


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

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

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

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

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

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

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

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


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


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

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


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

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


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


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

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


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


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

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

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

.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;//делаем видимое поле для ввода имени

}

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

{

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

}(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 Состав программы

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

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

board_d, ball_d - приращени движения шарика и ракетки.int Score - счет, для записи в таблицу рекордов.

static int heals - количество жизней.<String^>^ file - массив уровней. int **bricks; - массив из выбиваемых кирпичей.=new rec[11] - массив результатов.


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


int left,right,top,bottom,i,j;b_r=ball_s/2;^ Brick_Brush = gcnew SolidBrush(Color::Green);//кисть для блоков^ Brick_Pen=gcnew Pen(Color::DarkGreen);//кисть для обводки блоков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 с.

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

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

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

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


Приложение А


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


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

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

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


Приложение Б


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


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

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

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

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

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

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

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

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


СОДЕРЖАНИЕ ВВЕДЕНИЕ . Постановка задачи 2. Решение задачи 3. Описание программного обеспечения .1 Программная реализация .2 Общие сведения

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ