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

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

pencil
Узнай стоимость на индивидуальную работу!
icon Цены в 2-3 раза ниже
icon Мы работаем
7 дней в неделю
icon Только проверенные эксперты

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

Тип Реферат
Предмет Информатика и программирование
Просмотров
725
Скачиваний
343
Размер файла
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
115150
рейтинг
icon
2794
работ сдано
icon
1260
отзывов
avatar
Математика
Физика
История
icon
112249
рейтинг
icon
5477
работ сдано
icon
2470
отзывов
avatar
Химия
Экономика
Биология
icon
76693
рейтинг
icon
1888
работ сдано
icon
1197
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
49 200 оценок star star star star star
среднее 4.9 из 5
СибАДИ
заказ сделан отлично, все оформлено надлежащим образом, тема раскрыта полностью, спасибо о...
star star star star star
Томский политехнический университет
Спасибо. Работа истории выполнена очень хорошо и в срок. А самое главное недорого. Советую ;)
star star star star star
ИАТЭ НИЯУ МИФИ
Заказ выполнен досрочно, выручаете уже во второй раз. Спасибо огромное.
star star star star star

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

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

Дееспособность граждан

Курсовая, Гражданское право

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

только что
1 минуту назад

Решить 10 задач по математике

Решение задач, Математика

Срок сдачи к 21 мар.

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

2 Презентации, не больше 10 слайдов.

Презентация, управление качеством

Срок сдачи к 23 мар.

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

Рассчитать и спроектировать шаровой резервуар объемом 2000 м3 для...

Курсовая, Сварочное производство

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

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

Информационные технологии в экономике

Лабораторная, Информационные технологии

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

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

Социология

Курсовая, Социология

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

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

сдать тест

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

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

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

тестирование дистационно

Тест дистанционно, компьютерное оформление кадастровой документации

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

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

Погрешности измерений

Тест дистанционно, Метрология, стандартизация и сертификация

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

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

Тема Производство по уголовным делам в отношении несовершеннолетних

Курсовая, уголовно-процессуальное право

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

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

Учебный отчет Технология продукции общественного питания

Отчет по практике, кулинария

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

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

выполнить задания по методичке

Контрольная, тепломассообмен

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

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

Сложное сопротивление

Тест дистанционно, Сопротивление материалов

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

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

Курсовая работа страниц 30-35,тема" односоставные предложения А. Чехова"

Курсовая, Современный Русский Язык

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

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

ВКР

Диплом, ИСиТ

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

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

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

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

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

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

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

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

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