Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Создание игры

Тип Реферат
Предмет Информатика и программирование
Просмотров
949
Размер файла
28 б
Поделиться

Ознакомительный фрагмент работы:

Создание игры

Министерство образования РФ.

ИжГТУ.

Кафедра Радиотехники.

Курсовая работа

по информатике.

Тема: ”Создание игры”.

Проверил:

Старший преподаватель

Сидорина В.А.

Выполнил:

Студент гр.2-29-1

Скворцов Я.А.

Ижевск.2003.

Содержание Стр.

Введение--------------------------------------------------------------------------------3

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

2 Алгоритмы и блок-схемы---------------------------------------------------------5

3 Программа на языке Pascal с комментариями--------------------------------6

4 Руководство пользователя для работы в программе-----------------------16

Заключение----------------------------------------------------------------------------17

Список использованной литературы---------------------------------------------18

ВВЕДЕНИЕ:

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

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

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

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

а) Выбор, обоснование и изложение метода решения задачи.

Я предпочёл использование динамической памяти, прорисовку текстур в отдельной процедуре и звуковое сопровождение.

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

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

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

б) Построение алгоритма задачи.

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

Далее в зависимости от нажатых клавиш динамические объекты двигаются так или иначе.

в) Создание и отладка программы.

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

г) Оформление пояснительной записки и защита курсового проекта.

2 Блок-схема.

3 Программа на языке Pascal c комментариями.

program jim;

uses crt,graph;

label 1,3;

var a:char;

b:integer;

procedure beep;{Выдача звука}

begin

sound(300);delay(6000);nosound;delay(700);

end;

procedure zemlya;{прорисовка нижней части экрана}

begin

setcolor(3);

line(0,55,640,55);

line(0,479,0,430);

line(0,430,639,430);

line(639,430,639,479);

line(639,479,0,479);

setfillstyle(7,5);

floodfill(10,470,3);

end;

procedure PVO;{Прорисовка средства ПВО}

begin

setcolor(6);

line(5,37,45,37);line(45,37,47,39);

line(47,40,37,50);line(37,50,7,50);

line(7,50,3,39);line(3,38,5,37);

circle(15,43,6);circle(30,43,6);

circle(6,39,2);circle(44,39,2);

setfillstyle(1,6);

floodfill(41,43,6);floodfill(22,49,6);

floodfill(7,43,6);floodfill(10,39,6);

setcolor(2);

line(3,39,3,34);line(3,34,20,34);

line(21,34,21,23);line(21,23,33,23);

line(33,23,47,36);line(47,36,47,36);

line(47,36,3,36);

line(36,26,29,26);line(29,27,30,30);

line(31,31,42,31);

setfillstyle(1,2);floodfill(26,32,2);

setcolor(9);

line(8,33,8,23);line(9,24,9,13);

line(9,13,11,12);line(11,12,11,9);line(11,12,13,13);

line(13,13,13,24);line(14,23,14,33);

line(8,28,3,33);line(3,33,19,33);

line(19,33,14,28);

setfillstyle(1,9);floodfill(11,28,9);

line(21,24,24,24); line(21,25,24,25);

setcolor(4);line(21,26,25,26);line(21,27,25,27);

setcolor(15);line(21,28,26,28);line(21,29,26,29);

end;

procedure NLO; {прорисовка летающей тарелки}

var l:integer;

begin randomize;l:=random(256);

setcolor(l);

line(9,8,7,8);line(7,9,5,9);

line(5,10,3,10);line(3,11,1,11);

line(1,11,1,13);line(2,14,4,14);

line(3,15,5,15); line(5,16,8,16);

line(7,17,10,17);line(10,18,16,18);

line(16,19,35,19);line(35,18,41,18);

line(41,17,44,17);line(44,16,46,16);

line(46,15,48,15);line(48,14,49,14);

line(49,14,49,11);line(49,11,48,11);

line(48,10,46,10);line(46,9,44,9);

line(44,8,41,8);line(41,7,41,9);

line(41,9,40,9);line(40,10,37,10);

line(37,11,33,11);line(33,12,17,12);

line(17,11,13,11);line(13,10,10,10);

line(10,9,9,8);

setfillstyle(1,l);floodfill(24,15,l);

putpixel(31,16,0);putpixel(42,12,0);

putpixel(18,16,0);putpixel(7,13,0);

setcolor(11);

line(18,11,32,11);line(32,10,36,10);

line(36,9,39,9);line(40,8,40,5);

line(39,4,36,4);line(36,3,32,3);

line(32,2,18,2);line(18,3,14,3);

line(14,4,11,4);line(10,5,10,8);

line(11,9,14,9);line(14,10,18,10);

setfillstyle(1,11);floodfill(25,7,11);

end;

procedure pulka;{Прорисовка снаряда}

begin

setcolor(5);

line(2,6,2,3);line(3,6,3,0);line(4,6,4,3);

setcolor(13);

line(3,8,3,7);

setcolor(14);

line(1,5,1,7);line(2,7,2,9);

putpixel(3,9,14);line(4,7,4,9);line(5,5,5,7);

end;

procedure gameover(b,v:integer);{предписания при выигрыше одной

var u,o:integer; из сторон}

i:^integer;

siz:word;

begin

siz:=imagesize(0,100,1,100);

getmem(i,siz);

getimage(0,100,1,100,i^);

if v>500 then begin

outtextxy(300,240,'Y');beep;

outtextxy(308,240,'o');beep;

outtextxy(316,240,'u');beep;

outtextxy(324,240,'_');beep;

outtextxy(332,240,'W');beep;

outtextxy(340,240,'I');beep;

outtextxy(348,240,'N');beep;

end;

if b>500 then begin

outtextxy(300,240,'G');beep;

outtextxy(308,240,'a');beep;

outtextxy(316,240,'m');beep;

outtextxy(324,240,'e');beep;

outtextxy(332,240,'_');beep;

outtextxy(340,240,'O');beep;

outtextxy(348,240,'v');beep;

outtextxy(356,240,'e');beep;

outtextxy(364,240,'r');beep;

delay(45000);outtextxy(330,260,':');beep;

outtextxy(338,260,'-');beep;

outtextxy(346,260,'>');beep;

end;

delay(64500);delay(64500);

delay(64500);

for u:=0 to 640 do

for o:=0 to 480 do begin

putimage(u,o,i^,copyput);

end;

end;

procedure jim; {Непосредственно игра}

label 2,3;

var i,j,x,y,m,n,v,b:integer;

key:boolean;

s,ss,s1,s2,s3:word;p,pp,p1,p2,p3:pointer;{рр-пустой квадрат;р-ПВО...;р1-пулька}

begin i:=9;j:=2;initgraph(i,j,'');

3: ss:=imagesize(0,430,50,480);a:='y';

getmem(pp,ss);

getimage(0,430,50,480,pp^);

s:=imagesize(0,0,50,50);

getmem(p,s);

PVO;

getimage(0,0,50,50,p^);

putimage(0,0,pp^,copyput);

s1:=imagesize(0,0,5,10);

getmem(p1,s1);

pulka;

getimage(0,0,5,10,p1^);

putimage(0,0,pp^,copyput);

s2:=imagesize(0,0,5,10);{р2-маленький квадратик пульки}

getmem(p2,s2);

getimage(0,0,5,10,p2^);

s3:=imagesize(0,0,50,20);

getmem(p3,s3);

NLO;

getimage(0,0,50,20,p3^); putimage(0,0,pp^,copyput);

zemlya;

x:=200;y:=379;putimage(x,y,p^,copyput);

v:=0;b:=0;delay(45000);delay(45000);

repeat {Начало самого процесса игры}

for n:=1 to 1770 do begin

putimage(round(n/3),60,p3^,copyput);

if n>1760 then begin

putimage(round(n/3),60,pp^,copyput);

sound(300);delay(100);nosound;

end;

key:=keypressed;

if key=false then goto 2;

a:=readkey;

if a=chr(77) then begin

x:=x+3;

if x>580 then begin

putimage(x,y,pp^,copyput);

x:=10;

end;

putimage(x,y,p^,copyput);

end;

if a=chr(75) then begin

x:=x-3;

if x<10 then begin

putimage(x,y,pp^,copyput);

x:=580;

end;

putimage(x,y,p^,copyput);

end;

if a=chr(32) then begin for m:=y-2 downto 56 do begin

putimage(x+8,m,p1^,copyput);

delay(5);

end;

if m<90 then

if round(n/3)>(x-50) then

if round(n/3)<(x+10) then begin

sound(800);delay(2000);

nosound;putimage(round(n/3),60,pp^,copyput);

putimage(v,10,p1^,copyput);n:=1;

v:=v+15;if v>500 then begin gameover(b,v);goto 3;end;end;

putimage(x+8,56,p2^,copyput);

end;

2: end;putimage(b,24,p3^,copyput);b:=b+50;

if b>500 then begin gameover(b,v);goto 3;end;

if a=chr(113) then begin

v:=550;gameover(b,v);goto 3;

end;

until a=chr(27);

end;

begin{Основная программа}

1: clrscr;

gotoxy(30,10);

write('Введение');

gotoxy(30,11);

write('Постановка задачи');

gotoxy(30,12);

write('Математические методы...');

gotoxy(30,13);

write('Описание данных');

gotoxy(30,14);

write('Алгоритмы и блок-схемы');

gotoxy(30,15);

write('ПРОГРАММА');

gotoxy(30,16);

write('Текстовые примеры');

gotoxy(30,17);

write('Руководство пользователю');

gotoxy(30,18);

write('Заключение');

gotoxy(30,19);

write('Список литературы');{Это всё менюшка}

gotoxy(26,10);

write('>>>');

gotoxy(25,10);

repeat

a:=readkey;

if a=chr(80) then begin{движение курсора вниз}

b:=wherey;

gotoxy(26,b);

write(' ');

if b>=19 then b:=9;

gotoxy(26,b+1);

write('>>>');

gotoxy(25,b+1);

sound(3000);

delay(1000);

nosound;

end;

if a=chr(72) then begin{движение курсора вверх}

b:=wherey;

gotoxy(26,b);

write(' ');

if b<=10 then b:=20;

gotoxy(26,b-1);

write('>>>');

gotoxy(25,b-1);

sound(4000);

delay(1000);

nosound;

end;

if a=chr(13) then begin {Опрос клавиши ENTER}

b:=wherey;

if b=19 then begin {Список литературы}

sound(3000);

delay(1000);

nosound;

clrscr;

gotoxy(30,b);

write('Книжка по Турбо-Паскалю');

repeat

a:=readkey;

until a=chr(13);

sound(4000);

delay(1000);

nosound;

goto 1;

end;

if b=10 then begin {Введение}

sound(3000);

delay(1000);

nosound;

clrscr;

gotoxy(30,b);

writeln('Основной целью данного курсового проекта');

gotoxy(30,b+1);

writeln('является закрепление и демонстрация знаний,');

gotoxy(30,b+2);

writeln('полученых при изучении курса информатики');

repeat

a:=readkey;

until a=chr(13);

sound(4000);

delay(1000);

nosound;

goto 1;

end;

if b=11 then begin {Постановка задачи}

sound(3000);

delay(1000);

nosound;

clrscr;

gotoxy(30,b);

write('Сделать игру: леталку-стрелялку');

repeat

a:=readkey;

until a=chr(13);

sound(4000);

delay(1000);

nosound;

goto 1;

end;

if b=18 then begin {Заключение}

sound(3000);

delay(1000);

nosound;

clrscr;

gotoxy(30,b);

write('Мне понравилась моя прога :-)');

repeat

a:=readkey;

until a=chr(13);

sound(4000);

delay(1000);

nosound;

goto 1;

end;

if b=17 then begin {руководство пользователю}

sound(3000);

delay(1000);

nosound;

clrscr;

gotoxy(30,b);

write('Если Вы в этой проге ничего не поменяете');

gotoxy(30,b+1);

write('она будет работать ВЕЧНО...');

repeat

a:=readkey;

until a=chr(13);

sound(4000);

delay(1000);

nosound;

goto 1;

end;

if b=12 then begin {математические методы}

sound(3000);

delay(1000);

nosound;

clrscr;

gotoxy(30,b);

write('Задача сама по себе не математическая,');

gotoxy(30,b+1);

write('значит и математических методов никаких нет');

repeat

a:=readkey;

until a=chr(13);

sound(4000);

delay(1000);

nosound;

goto 1;

end;

if b=13 then begin {Описание данных}

sound(3000);

delay(1000);

nosound;

clrscr;

gotoxy(30,b);

write('Данных нет...');

repeat

a:=readkey;

until a=chr(13);

sound(4000);

delay(1000);

nosound;

goto 1;

end;

if b=14 then begin {Алгоритм.блок-схема}

sound(3000);

delay(1000);

nosound;

clrscr;

gotoxy(30,b);

write('Смотри Пояснителную записку');

repeat

a:=readkey;

until a=chr(13);

sound(4000);

delay(1000);

nosound;

goto 1;

end;

if b=16 then begin {Текстовые примеры}

sound(3000);

delay(1000);

nosound;

clrscr;

gotoxy(30,b);

write('Текстовых примеров у меня тоже нет');

repeat

a:=readkey;

until a=chr(13);

sound(4000);

delay(1000);

nosound;

goto 1;

end;

if b=15 then begin

sound(3000);

delay(1000);

nosound;

jim;

closegraph;

goto 1;

end;

end;

until a=chr(27);

end.

4 Руководство пользователя для работы в программе.

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

Курсор перемещается при помощи клавиш курсора, выбор осуществляется клавишей ENTER .

При выборе какого-либо пункта меню появляется соответствующее сообщение, однако же, при выборе пункта «Программа» запускается непосредственно сама игра.

Суть игры заключается в сбивании летающих тарелок средством ПВО.

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

Игрок проигрывает в случае достижения числа не сбитых тарелок правого края экрана.

Игрок выигрывает в случае достижения числа сбитых тарелок правого края экрана.

После проигрыша либо выигрыша игра повторяется.

Заключение.

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

Длителен также процесс детальной прорисовки графики.

Необходимо, чтобы в той папке, где лежит данная программа, находился файл egavga.bgi . Этот файл имеется во многих версиях ТР в папке bin, он отвечает за инициализацию графики.

Список использованной литературы.

1 Меженный О.А. «Turbo Pascal-учитесь программировать»;Москва-С.Петербург-Киев; «Диалектика»;2001;448с.

2 Бабушкин И.А.; «Практикум по ТР»-учебное пособие по курсам ИВТ; Москва, 1998.

3 http://www.freepascal.org;

4 http://www.geocities.com/~franzglaser/tp.htm;

5 http://www.garbo.uwasa.fi/pc/turboobj.html;


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

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

Строгий отбор экспертов

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

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно