Компьютерная аркадная игра "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 - количество жизней.^ file - массив уровней. int **bricks;