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

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

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

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

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

Да, спасибо!

0%

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

0%

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

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

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

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


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

Тип Реферат
Предмет Информатика и программирование
Просмотров
794
Размер файла
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
138683
рейтинг
icon
3049
работ сдано
icon
1327
отзывов
avatar
Математика
Физика
История
icon
137726
рейтинг
icon
5837
работ сдано
icon
2642
отзывов
avatar
Химия
Экономика
Биология
icon
92388
рейтинг
icon
2003
работ сдано
icon
1260
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
51 762 оценки star star star star star
среднее 4.9 из 5
Плеханова
Прекрасное, а главное быстрое выполнение работы. Качественно и раньше срока. Рекомендую...
star star star star star
РУТ (МИИТ) бывш. МГУПС императора Николая II
было сделано досрочно, выполнено качественно,надеюсь будем ещё сотрудничать с Николаем :)
star star star star star
Тобольский пединститут им. Д.И. Менделеева (филиал) ТюмГУ
Прекрасный, профессиональный исполнитель, готовый прислушиваться и сотрудничать ради общей...
star star star star star

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

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

только что

Курсовой проект "Статический преобразователь большой мощности самолета Ил-112

Курсовая, Электрифицированное оборудование ВС

Срок сдачи к 25 апр.

только что

Выполнить контрольную работу

Контрольная, Проектирование Информационных Систем

Срок сдачи к 8 мая

1 минуту назад

На шар-зонд, запускаемый в атмосферу

Решение задач, Задачи расчета периодичности и продолжительности профилактических работ, радиотехника

Срок сдачи к 27 апр.

1 минуту назад

Решить 3 задания

Контрольная, Статистические методы в УК, статистика

Срок сдачи к 12 мая

1 минуту назад

Ответы на вопросы

Другое, Английский язык

Срок сдачи к 25 апр.

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

Помощь на экзамене

Онлайн-помощь, Энергосбережение в теплоэнергетике и теплотехнологии

Срок сдачи к 27 апр.

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

Написать ВКР в соответствии с требованиями

Диплом, Охрана труда

Срок сдачи к 20 июня

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

Контрольная, проект без презентации/современные социальные конфликты

Контрольная, современные социальные конфликты

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

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

всего одно задание.

Контрольная, Автоматизация технологических процессов в машиностроении

Срок сдачи к 12 мая

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

Знаки безопасности на объектах НГК

Отчет по практике, Технологическая безопасность нефтегазового производства, нефтегазовое дело

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

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

Работа

Курсовая, таможенное дело

Срок сдачи к 24 мая

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

Решить 10 задач по инженерной математике

Контрольная, Инженерная математика

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

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

e* sin ydx + tg ydy = 0.

Решение задач, Высшая математика

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

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

Медицина

Другое, Медицина

Срок сдачи к 25 апр.

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

Написать 1 главу к Диплому

Курсовая, Маркетинг

Срок сдачи к 27 апр.

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

Здравствуйте, учусь на специальности "Экономика предприятий и...

Отчет по практике, Экономика

Срок сдачи к 15 мая

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

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

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

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

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

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

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

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