Программная реализация игры "2 башни"

Создание игрового приложения "2 башни" на языке PascalABC.NET. Проектирование игрового цикла и управления графическими объектами через события. Разработка алгоритмов и структур классов реализации игры, ее основные правила и контрольный пример работы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 05.04.2013
Размер файла 5,4 M

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

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

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

РЕФЕРАТ

Отчет 39с., 5 ч., 15 рис., 2 табл., 4 источников, 2 прил.

ИГРОВОЙ ЦИКЛ, БАЛЛИСТИКА, ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС

Объектом исследования является применение объектно-ориентированного программирования для создания игрового приложения.

Цель работы - разработка игрового приложения на языке PascalABC.NET. Программная реализация игры “2 башни”

В работе рассматриваются теоретические и практические вопросы реализации игрового цикла, управление графическими объектами через события, приведены алгоритмы и структуры классов реализации игры.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. АНАЛИЗ ЛИТЕРАТУРНЫХ ИСТОЧНИКОВ

2. ПОСТАНОВКА ЗАДАЧИ

3. АЛГОРИТМИЧЕСКОЕ КОНСТРУИРОВАНИЕ

4. ПРОГРАММНОЕ КОНСТРУИРОВАНИЕ

4.1 ОПИСАНИЕ ТИПОВ

4.2 ТАБЛИЦЫ МЕТОДОВ

5. КОНТРОЛЬНЫЙ ПРИМЕР

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЯ

ВВЕДЕНИЕ

Актуальность темы моей работы определяется в первую очередь, спросом игр данного жанра. Например, известная игра Worms (червячки) вышедшая в 1994 году, либо Angry Birds (злые птицы), которую на данный момент скачали более 1 миллиарда раз, что делает самым скачиваемым приложением для мобильных платформ, таких как iOS и Android.

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

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

1. АНАЛИЗ ЛИТЕРАТУРНЫХ ИСТОЧНИКОВ

Одной из прикладных сфер программирования является создание компьютерных игр. В качестве анализируемого источника была найдена реализация подобной игры на языке Pascal ABC, которая доступна по адресу СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ[5]. На рисунке 1 представлено игровое поле, которое состоит из нескольких частей: два атакующих друг друга персонажа, жилые дома, имена игроков, заданный угол полета и скорость.

Рисунок 1 - Пример интерфейса другой игры.

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

2. ПОСТАНОВКА ЗАДАЧИ

Целью данной работы является программная реализация игры «2 башни».

Для реализации поставленной цели необходимо выполнить следующие задачи:

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

2. Создать игровые объекты, такие как: 2 башни, ядро, индикатор силы, угол наклона.

3. Разработать метод определяющий траекторию полета ядра, в зависимости от скорости и угла.

4. Управлять графическими объектами через события.

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

6. Создать таймер хода.

7. Разработать меню, включающее: начать, рестарт и закончить игру.

3. АЛГОРИТМИЧЕСКОЕ КОНСТРУИРОВАНИЕ

В ходе работы были разработаны алгоритмы: Physics, ActivePlayer, PassivePlayer, Seconds, GameInit, RestartGame, GameOver.

Когда пользователь запускает программу, в графическом отображается главный экран, представляющий из себя основное меню игры. Кнопка «Начать» запускает игру, кнопка “Выход” соответственно покинуть игру.

Алгоритм Physics определяет траекторию полета снаряда, зависящую от скорости и угла. Вычисляет координаты: x и y, на которые перемещается объект снаряда, что графически воспринимается как полет. Алгоритм задействуется после нажатия клавиши “Enter”, что означает собой выстрел из орудия. По нажатию клавиш “стрелка вправо” или “стрелка влево”, определяется скорость полета снаряда. По нажатию клавиш “стрелка вверх” или “стрелка вниз” определяется угол наклона.

Также алгоритм Physics проверяет попадание снаряда в башню противоположного игрока.

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

Рисунок 2 - Метод Physics, класса CGame.

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

Рисунок 3 - Метод Physics, класса CGame.

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

Рисунок 4 - Метод Physics, класса CGame.

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

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

Рисунок 5 - Метод ActivePlayer, класса CGame.

Алгоритм Seconds отсчитывает оставшееся время на ход и выводит на экран.

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

Рисунок 6 - Метод Seconds, класса CGame.

Алгоритм GameInit делает видимыми графические элементы: 2 башни, ядро, индикаторы силы и угла, количество жизней в центр башен, имя игроков. Запускает основной игровой цикл, в котором поочередно определяется ход игрока, четное число - ход первого игрока, не четное - второго.

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

Рисунок 7 - Метод GameInit, класса CGame

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

Рисунок 8 - Метод GameInit, класса CGame.

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

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

Рисунок 9 - Метод RestartGame, класса CGame.

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

Рисунок 10 - Метод RestartGame, класса CGame.

Алгоритм GameOver вызывается, если количество жизней одной из башен равно нулю. При этом останавливается игровой таймер и показывается поздравление победителя с его именем.

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

Рисунок 11 - Метод GameOver, класса CGame.

Алгоритм PassevePlayer определяет пассивного игрока, чей ход будет следующим.

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

Рисунок 12 - Метод PassivePlayer, класса CGame.

4. ПРОГРАММНОЕ КОНСТРУИРОВАНИЕ

4.1 ОПИСАНИЕ ТИПОВ

В ходе работы были разработаны классы, связь классов показана на рисунке 13

Рисунок 13 - Диаграмма классов

4.2 ТАБЛИЦЫ МЕТОДОВ

Список полей и методов класса CGame представлен в таблице 1.

Таблица 1 - Таблица методов класса CGame

Метод

Аргументы

Возвращаемое значение

Описание

Physics

V0, Angle: real

-

Определяет в цикле, с помощью физической формулы, координаты x,y, учитывая переданные ему аргументы v0 - скорость и Angle - угол. В этом же цикле происходит перемещение снаряда на x,y, а также проверка состояния здоровья башни при попадании и проверка вылета снаряда за пределы экрана.

ActivePlayer

Player: Players

-

Метод определяет активного игрока. Объект ActPlayer получает объект игрока, ход которого сейчас должен быть. Останавливается таймер хода (если он был запущен ранее) и включается заново. Задается начальный угол полета на 90*, начальная скорость на 0.

PassivePlayer

Player: Players

-

Метод определяет не активного игрока. Объект PasPlayer получает объект игрока, ход которого сейчас не должен быть.

Seconds

-

-

Метод отсчитывает, сколько секунд имеется на ход. При этом, если время вышло, то игровой счетчик увеличивается на 1 ед., а поле StepStatus принимает TRUE, что позволяет передать ход следующему игроку.

GameInit

-

-

Метод инициализирует игровой цикл, где каждую секунду проверяется возможность хода следующему игроку. Если игровой счетчик четное число, то ход предоставляется первому игроку, иначе второму. Также метод выводит на экран графические объекты, уровень жизни и имена игроков.

RestartGame

-

-

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

GameOver

-

-

Останавливает игровой таймер, выводит на экран имя победителя.

Список полей и методов класса Players представлен в таблице 2.

Таблица 2 - Таблица методов класса Players

Метод

Аргументы

Возвращаемое значение

Описание

SetName

Name: string

-

Задает имя игрока.

SetLife

Life: integer

-

Задает уровень жизни игрока переданный в качестве аргумента.

SetColor

Color: System.Drawing.Color

-

Задает цвет имени игрока.

LifeInit

-

-

Задает определенный (не изменяемый) уровень здоровья для игрока.

5. КОНТРОЛЬНЫЙ ПРИМЕР

графический алгоритм класс игра

При запуске игры пользователю предлагается начать игру или выйти.

Рисунок 14 - Меню

После нажатия кнопки “начать”, можно наблюдать появление графических объектов, таких как: 2 башни, информационное табло с именем игрока, кто должен атаковать, время выделяемое на ход, 2 индикатора силы, необходимые для задания скорости полета снаряда и 2 кнопки: рестарт - перезагрузить игру и выход. Имя игрока пишется на индикаторе силы. Количество жизней башни отображается на ней же.

Рисунок 15 - Основное игровое окно

На рисунке 16 и 17 показано, изменения угла орудия. Угол меняется на левую и правую стрелку, на клавиатуре.

Рисунок 16 - Изменение угла атаки

Рисунок 17 - Изменение угла атаки

На рисунке 18 и 19 показан индикатор скорости полета снаряда. Увеличение скорости происходит по нажатию “стрелки вверх”, уменьшение “стрелки вниз”, на клавиатуре.

Рисунок 18 - Индикатор силы

Рисунок 19 - Индикатор силы

Запуск снаряда производится на клавишу Enter. Также в зависимости от количества жизней башни, отображается соответствующая картинка с трещинами разрушения. Рисунок 20 и 21 наглядно это демонстрирует.

Рисунок 20 - Разрушение башни

Рисунок 21 - Разрушение башни

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

Рисунок 22 - Демонстрация победы

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Сайт факультета математики, механики и компьютерных наук Южного федерального университета. URL: http://pascalabc.net/

2. Материал из Википедии, свободной энциклопедии. URL: http://ru.wikipedia.org/wiki/Worms

3. Материал из Википедии, свободной энциклопедии. URL: http://ru.wikipedia.org/wiki/Angry_Birds

4. Материал из Википедии, свободной энциклопедии. URL: http://ru.wikipedia.org/wiki/Баллистика

5. Информационный ресурс о играх. URL: http://www.kongregate.com/games/Moly/gorillas-bas

ПРИЛОЖЕНИЕ А

ТЕКСТЫ ОСНОВНЫХ ПРОГРАММНЫХ МОДУЛЕЙ

uses GraphABC, ABCObjects, Timers;

const

window_x = 1000; { ширина окна }

window_y = 700; { высота окна }

g = 9.81; { гравитационная постоянная }

pi = 3.14; { математическая константа }

time_step = 41; { время хода в секундах }

type

Players = class(PictureABC)

private

Name: string; { имя игрока }

Life: integer; { кол-во жизней }

X,Y: integer; { расположение башен }

Power_x: integer; { расположение индикатора силы по Х }

Color: System.Drawing.Color; { цвет игрока }

protected

constructor Create(x,y: integer; fname: string);

begin

inherited;

self.X:=x;

self.Y:=y;

end;

procedure SetName(Name: string);

begin

self.Name := Name;

end;

procedure SetLife(Life: integer);

begin

self.Life := Life;

end;

procedure SetColor(Color: System.Drawing.Color);

begin

self.Color := Color;

end;

procedure LifeInit;

begin

Life := 100;

end;

public

property PName: string read Name write SetName;

property PLife: integer read Life write SetLife;

property PColor: System.Drawing.Color read Color write SetColor;

end;

CGame = class

private

Start, StepStatus: boolean;

Angle, Speed, EventEnable, Sec, Counter: integer;

Ball, MenuBG, InfoStep, InfoTime, InfoNameP1, InfoNameP2, PowerP1, PowerP2, RightBG, LeftBG, Celebration: PictureABC;

ButtonStart, ButtonExit, ButtonRestart: PictureABC;

Player1, Player2, ActPlayer, PasPlayer: Players;

TDisplay: Timer;

protected

constructor Create;

begin

SetWindowWidth(window_x);

SetWindowHeight(window_y);

CenterWindow;

SetSmoothingOn;

OnKeyDown := KeyDown;

OnMouseDown := Mouse;

MenuBG := new PictureABC(0, 0, 'models\bg.png');

Player1 := new Players(0, 580, 'models\original_tower.png');

Player2 := new Players(880, 580, 'models\original_tower.png');

TDisplay := new Timer(1000, Seconds);

Player1.Power_x := 120;

Player2.Power_x := -90;

Ball := new PictureABC(window_x, window_y, 'models\core_2.png');

InfoStep := new PictureABC(window_x div 2 - 150, 20, 'models\step.png');

InfoTime := new PictureABC(window_x div 2 - 60, window_y - 620, 'models\form_button.png');

PowerP1 := new PictureABC(Player1.X+Player1.Power_x-3, Player1.Y+60, 'models\power3.png');

PowerP2 := new PictureABC(Player2.X+Player2.Power_x-3, Player2.Y+60, 'models\power3.png');

RightBG := new PictureABC(Player2.x, Player2.y-50, 'models\right_bg.png');

LeftBG := new PictureABC(Player1.x, Player2.y-50, 'models\left_bg2.png');

Celebration := new PictureABC((window_x div 2) - 200, window_y div 3, 'models\celebration.png');

IndicatorPrint;

Hidden;

ButtonStart := new PictureABC((window_x div 2) - 80, window_y div 3, 'models\button_start.png');

ButtonExit := new PictureABC((window_x div 2) - 80, (window_y div 3)+50, 'models\button_exit1.png');

ButtonRestart := new PictureABC(20, 10, 'models\button_restart.png');

ButtonRestart.Visible := FALSE;

end;

{ Метод определяет координаты полета снаряда }

procedure Physics(v0, angle: real);

var x,y: integer;

t: real;

begin

while t<15 do begin

t := t+0.03;

y := ActPlayer.y-round(5*(v0*sin(Angle*pi/180)*t-g*t*t/2));

x := 50+ActPlayer.x+round(5*(v0*cos(Angle*pi/180)*t));

if y > window_y then continue;

if x > window_x then continue;

Ball.MoveTo(x, y);

if PasPlayer.Intersect(Ball) then begin

if PasPlayer.Life < 1 then begin

GameOver; EXIT;

end;

PasPlayer.Life -= 1;

LifePrint;

end;

sleep(5);

end;

if PasPlayer.Life < 100 then ChangeTower;

end;

{ Метод определяет активного игрока }

procedure ActivePlayer(player: Players);

begin

TDisplay.Stop;

TDisplay.Start;

ActPlayer := player;

EventEnable := 1; { Если равно 1, то разрешно одно нажатие на Enter }

Angle := 90; { Задаем начальный угол }

Sec := time_step;

Speed := 0; { Начальная скорость }

IndicatorPrint;

StepPrint;

end;

{ Метод определяет кто является не активны игроком }

procedure PassivePlayer(player: Players);

begin

PasPlayer := player;

end;

{ Таймер отсчитывает сколько имеется секунд на ход }

procedure Seconds;

var sub_nil: string;

begin

dec(Sec);

if (Sec < 10) then sub_nil := '0'

else sub_nil := '';

if Sec < 1 then begin

Counter += 1;

StepStatus := TRUE;

end;

InfoTime.FontColor := ActPlayer.Color;

InfoTime.Text := '00:' + sub_nil + Sec.ToString;

end;

{ Запуск игры }

procedure GameInit;

begin

Show;

LifePrint;

NamePrint;

StepStatus := TRUE;

Counter := 0;

while TRUE do begin

if StepStatus = TRUE then begin

if (Counter mod 2 = 0) then begin

ActivePlayer(Player1);

PassivePlayer(Player2);

StepStatus := FALSE;

end else begin

ActivePlayer(Player2);

PassivePlayer(Player1);

StepStatus := FALSE;

end;

end;

sleep(1000);

end;

end;

{ Рестарт игры }

procedure RestartGame;

begin

Player1.LifeInit;

Player2.LifeInit;

LifePrint;

TDisplay.Start;

Sec := time_step;

Celebration.Visible := FALSE;

Player1.ChangePicture('models\original_tower.png');

Player2.ChangePicture('models\original_tower.png');

end;

{ Конец игры }

procedure GameOver;

begin

TDisplay.Stop;

Celebration.Visible := TRUE;

Celebration.TextScale := 0.6;

Celebration.FontColor := clWhite;

Celebration.Text := ActPlayer.Name + ' одержал победу!';

end;

private

{ Метод вывод на экран ход текущего игрока }

procedure StepPrint;

begin

InfoStep.FontColor := ActPlayer.Color;

InfoStep.Text := 'Ход игрока: ' + ActPlayer.Name;

end;

{ Состояние жизней }

procedure LifePrint;

var life: string;

begin

Player1.FontColor := clWhite;

Player2.FontColor := clWhite;

Player1.TextScale := 0.4;

Player2.TextScale := 0.4;

Player1.Text := Player1.Life.ToString;

Player2.Text := Player2.Life.ToString;

end;

{ Ники игроков }

procedure NamePrint;

begin

PowerP1.FontColor := Player1.Color;

PowerP2.FontColor := Player2.Color;

PowerP1.Text := Player1.Name;

PowerP2.Text := Player2.Name;

end;

{ Индикаторы силы }

procedure IndicatorPrint;

begin

PowerP1.Redraw;

PowerP2.Redraw;

end;

{ Метод меняет изображение башни в зависимости от уроня HP }

procedure ChangeTower;

begin

if (PasPlayer.Life > 90) and (PasPlayer.Life < 100) then PasPlayer.ChangePicture('models\tower_crack\1.png')

else if PasPlayer.Life > 80 then PasPlayer.ChangePicture('models\tower_crack\2.png')

else if PasPlayer.Life > 70 then PasPlayer.ChangePicture('models\tower_crack\3.png')

else if PasPlayer.Life > 60 then PasPlayer.ChangePicture('models\tower_crack\4.png')

else if PasPlayer.Life > 50 then PasPlayer.ChangePicture('models\tower_crack\5.png')

else if PasPlayer.Life > 40 then PasPlayer.ChangePicture('models\tower_crack\6.png')

else if PasPlayer.Life > 30 then PasPlayer.ChangePicture('models\tower_crack\7.png')

else if PasPlayer.Life > 20 then PasPlayer.ChangePicture('models\tower_crack\8.png')

else if PasPlayer.Life > 10 then PasPlayer.ChangePicture('models\tower_crack\9.png')

else if PasPlayer.Life > 0 then PasPlayer.ChangePicture('models\tower_crack\10.png');

end;

{ Скрытие графических элементов }

procedure Hidden;

begin

if InfoTime.Visible = TRUE then InfoTime.Visible := FALSE;

if InfoStep.Visible = TRUE then InfoStep.Visible := FALSE;

if Player1.Visible = TRUE then Player1.Visible := FALSE;

if Player2.Visible = TRUE then Player2.Visible := FALSE;

if PowerP1.Visible = TRUE then PowerP1.Visible := FALSE;

if PowerP2.Visible = TRUE then PowerP2.Visible := FALSE;

if Celebration.Visible = TRUE then Celebration.Visible := FALSE;

end;

{ Показать графические элементы }

procedure Show;

begin

if InfoTime.Visible = FALSE then InfoTime.Visible := TRUE;

if InfoStep.Visible = FALSE then InfoStep.Visible := TRUE;

if Player1.Visible = FALSE then Player1.Visible := TRUE;

if Player2.Visible = FALSE then Player2.Visible := TRUE;

if PowerP1.Visible = FALSE then PowerP1.Visible := TRUE;

if PowerP2.Visible = FALSE then PowerP2.Visible := TRUE;

end;

{ События }

procedure KeyDown(key: integer);

begin

if (Angle > 135) then Angle -= 2;

if (Angle < 45) then Angle += 2;

if (Speed > 98) then Speed -= 2;

if (Speed < 1) then Speed += 2;

case key of

VK_Right:

begin

Angle-=2;

RightBG.Redraw;

LeftBG.Redraw;

SetPenColor(clWhite);

line(50+ActPlayer.x, ActPlayer.y, 50+ActPlayer.x+Round(50*cos((0+Angle)*pi/180)), ActPlayer.y-Round(50*sin((0+Angle)*pi/180)));

end;

VK_Left:

begin

Angle+=2;

RightBG.Redraw;

LeftBG.Redraw;

SetPenColor(clWhite);

line(50+ActPlayer.x, ActPlayer.y, 50+ActPlayer.x+Round(50*cos((0+Angle)*pi/180)), ActPlayer.y-Round(50*sin((0+Angle)*pi/180)));

end;

VK_Enter:

begin

if EventEnable = 1 then begin

Physics(Speed/1.5, Angle);

EventEnable := 0;

Counter+=1;

StepStatus := TRUE;

RightBG.Redraw;

LeftBG.Redraw;

end;

end;

VK_Up:

begin

SetPenColor(clRed);

line(ActPlayer.X+ActPlayer.Power_x+Speed, ActPlayer.Y+80, ActPlayer.X+ActPlayer.Power_x+Speed, ActPlayer.y+62);

Speed+=2;

end;

VK_Down:

begin

SetPenColor(clWhite);

line(ActPlayer.X+ActPlayer.Power_x+Speed, ActPlayer.Y+80, ActPlayer.X+ActPlayer.Power_x+Speed, ActPlayer.y+62);

Speed-=2;

end;

end; { конец case }

end;

procedure Mouse (x,y,mousebutton: integer);

begin

if ButtonStart.PtInside(x, y) then begin

ButtonStart.Destroy;

ButtonExit.MoveTo(20, 50);

Start := TRUE;

ButtonRestart.Visible := TRUE;

end;

if ButtonExit.PtInside(x, y) then begin

Halt;

end;

if ButtonRestart.PtInside(x, y) then begin

RestartGame;

end;

end;

end; { конец класса }

var

Game: CGame := new CGame;

begin

while Game.Start <> TRUE do sleep(500);

Game.Player1.PName := 'Орк';

Game.Player2.PName := 'Гэндальф';

Game.Player1.PColor := clGold;

Game.Player2.PColor := clWhite;

Game.Player1.LifeInit;

Game.Player2.LifeInit;

Game.GameInit;

end.

Приложение Б

Техническое задание по ГОСТ 19.201-78 ЕСПД

А1. Введение

Наименование программы

Наименование - Игра «2 башни»

Краткая характеристика области применения

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

А2. Основания для разработки

Разработка проводится на основании:

· задания на курсовой проект по специальности 231000 «Программная Инженерия» факультета «Информатика и вычислительная техника» Донского государственного технического университета;

· задания на программную реализацию игры, данного Слоновским Алексеем Владимировичем.

Тема курсового проекта: Программная реализация игры «2 башни».

А3. Назначение разработки

А3.1. Функциональное назначение

Предоставление пользователю возможности электронного прохождения игры «2 башни».

А3.2. Эксплуатационное назначение

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

А4. Требования к программе или программному изделию

Программное изделие должно состоять из одной программы:

Программа «2 башни»-программа моделирующая игру 2 башни.

Использование небольшого объема оперативной памяти компьютера;

Возможность использования ПП на любой версии MS Windows, начиная с версии 2000;

Удобный и интуитивно понятный интерфейс приложения

А4.1. Требования к функциональным характеристикам

Игра «2 башни» должна обеспечивать возможность выполнения перечисленных ниже функций:

· Функция графического вывода на экран

· Функция запуска новой игры

· Функция управления углом атаки

· Функция управления скоростью атаки

· Функция запуска снаряда

· Функция выхода из игры

А4.1.2. Выходные данные системы

· Вывод на экран графического отображения всех объектов игрового процесса.

А4.2. Условия эксплуатации

А4.2.1. Климатические условия эксплуатации

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

А4.2.2. Требования к видам обслуживания

Программное средство не требует проведения каких-либо видов обслуживания.

А4.2.3 Требования к численности и квалификации персонала

Необходима 1 штатная единица-оператор.

А4.2.3 Требования к составу и параметрам технических средств

В состав технических средств должен входить IBM-совместимый персональный компьютер (ПЭВМ), включающий в себя:

· процессор Pentium-3 с тактовой частотой не менее 1 ГГц;

· оперативную память объемом не менее 512 Мб;

· жесткий диск со скорость не менее 5400 об/мин и свободным местом не менее 100Мб;

· SVGA-совместимый видеоадаптер;

· монитор с разрешением не менее 800x600 пикселей;

· клавиатуру;

· мышь.

А4.4. Требования к маркировке и упаковке

Программа поставляется в виде программного изделия - на дистрибутивном (внешнем оптическом) носителе (компакт-диске).

А4.4.1. Требования к маркировке

Требования к маркировке программного изделия не предъявляются.

А4.4.2. Требования к упаковке

Упаковка программного изделия должна осуществляться согласно требованиям предприятия-изготовителя носителя информации.

А4.5. Требования к транспортированию и хранению

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

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

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

А5. Требования к программной документации

Программная документация должна содержать:

· лист задания;

· алгоритмы решения;

· Реферат об отчете.

· тексты основных программных модулей

· техническое задание (по ГОСТ 19.201-78);

А6. Стадии и этапы разработки

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

· анализ требований;

· разработка технического задания;

· разработка программного продукта

· тестирование системы;

· внедрение;

· составление акта внедрения.

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

А7. Порядок контроля и приемки

Порядок и контроль приёмки определяются заведующим кафедрой «ПОВТ и АС» и основаны на демонстрации знаний технологии и умении создавать программные средства для различных предметных областей. Главным требованием к приему является наличие корректно работающей программы и отчета, представленного в печатном виде.

А8. Приложение к техническому заданию. Обоснование выбора технологии

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

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


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

  • Разработка компьютерных игр как зрелищная и наиболее сложная отрасль программирования. Рассмотрение основных особенностей конструирования классов CGame и Players, а также алгоритмов вычисления траектории полета снаряда. Анализ алгоритма PassivePlayer.

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

  • История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.

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

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

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

  • Реализация основных алгоритмических структур. Усеченный условный оператор и оператор exit. Цикл с параметром (счетный цикл). Распечатка таблиц функций. Средства разработки программ на языке Free Pascal. Разработка игрового приложения "Быки и коровы".

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

  • Написание игры "Lines" на языке Object Pascal в среде Delphi. Алгоритм работы программы. Описание метода генерации поля. Используемые константы и переменные. Форма приложения после старта игрового процесса. Основные элементы формы и обработки событий.

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

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

    дипломная работа [1,4 M], добавлен 19.01.2017

  • Разработка программного продукта, предназначенного для имитации физического взаимодействия между объектами на основе игрового симулятора. Проектирование программы "LonelySpaceRanger", код которой представлен на языке VisualС++. Разработка интерфейса.

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

  • Разработка и создание игры "Змейка". Использование динамически-активных принципов языка Java. Графические объекты программы. Описание игры, правила, теоретические сведения. Классы приложения. Типы данных. Реализация. Метод. Объект. Блок-схема игры.

    курсовая работа [12,4 K], добавлен 18.06.2008

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

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

  • Разработка игрового проекта на игровом движке Unity 3D в среде программирования MS Visual Studio 2017. Блок-схема алгоритма работы приема сообщений с сервера на клиенте с упрощенным описанием выполняемых команд. Реализация пользовательского интерфейса.

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

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