Программирование компьютерной графики. Создание игры «Опасный лабиринт»

Страницы работы

Содержание работы

Балтийский государственный технический университет «Военмех» им. Д.Ф.Устинова

Кафедра И5

«Информационных систем и компьютерных технологий»

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

По учебной дисциплине: «Программирование на языках высокого уровня»

На тему: «Программирование компьютерной графики. Создание игры.»

Проверил:

Васюков В.М.

Студент:

Кулагина А.С.

Группа Н392

Санкт-Петербург

2010

Задача: Создать игру «Опасный лабиринт», состоящую из 3-х уровней (лабиринтов), отличающихся по сложности. Задача игрока как можно быстрей добраться до выхода. Как только цель достигнута на экран выводится время прохождение уровней. 10 лучших результатов хранятся в файле и выводятся по запросу пользователя.

Цель работы:   -разобраться с наследованием классов;

-продемонстрировать работы со списками;

-продемонстрировать работу с файлами;

-реализовать управление объектами в программе;

-реализовать программное меню;

-продемонстрировать работу в графическом режиме.

Схема классов:

                                         class Play

BadObject massB[8];

User_Menu m

Class Best                   

- void OpenFileRank                      - void Time

- void ReadFileRank                      - int Life

- void AddFileRank                       - void Vlvl

- void CreateFileRank                    - void Level3

- void AddNewUser                        - void Level2

- void Level1

                                         - int Labirint1

- int Labirint2

- void Labirint3

 


                       

class BadObject                          class Game

- void Move                              - void Zapusk                      

- void Paint                             - void Menu                        

- void Labirint

class User_Menu        

-int UserMenu

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

Листингпрограммы:

void Screen (void);

void CurShow (int, int);

void CurHide (int, int);

void MenuShow (void);

void Pole (void);

void GameOver (void);

void TheEnd (void);

void ShowPlayer (int,int);

void HidePlayer (int,int);

void User_Menu1 (void);

void Stenka (int,int);

void Exit (int,int);

void Stenka (int xs,int ys) //прорисовка стенок

{

setcolor (4);

rectangle (xs,ys,xs+40,ys+40);

line (xs+13.3,ys,xs+13.3,ys+26.6);

line (xs+13.3,ys+13.3,xs+40,ys+13.3);

line (xs,ys+26.6,xs+26.6,ys+26.6);

line (xs+26.6,ys+13.3,xs+26.6,ys+40);   

}

void Exit (int xe,int ye) //выход

{

setcolor (9);

circle (xe,ye,15);

setfillstyle (1,9);

floodfill (xe,ye,9);

}

void User_Menu1 () //пользовательское меню

{

setcolor (8);

settextstyle( DEFAULT_FONT, HORIZ_DIR, 40);

outtextxy (320,20,"Меню");

settextstyle( DEFAULT_FONT, HORIZ_DIR, 32 );

setcolor (3);

outtextxy (320,105, "Продолжить");

settextstyle( DEFAULT_FONT, HORIZ_DIR, 25 );

outtextxy (315,195, "В главное меню");

settextstyle( DEFAULT_FONT, HORIZ_DIR, 20 );

outtextxy (315, 285, "Таблица рекордов");

settextstyle( DEFAULT_FONT, HORIZ_DIR, 32 );

outtextxy (320,370, "Выход");

setcolor (8);

line (0, 50, 50, 50);

line (100,0, 100, 100);

line (50,50, 50, 150);

line (50,150, 0,150);

line (100,100, 190,100);

line (190,100, 190,50);

line (190,50, 450,50);

line (450,50, 450,100);

line (450,100, 540,100);

line (540,100, 540,0);

line (640,50, 590,50);

line (590,50, 590,150);

line (590,150, 640,150);

line (540,150, 450,150);

line (540,150, 540,200);

line (540,200, 590,200);

line (100,150, 100, 200);

line (100,200, 50,200);

line (100,150, 190, 150);

line (190,150, 190,220);

line (50,200, 50,220);

line (50,220, 190,220);

line (190,270, 100,270);

line (100,270, 100,370);

line (100,370, 170,370);

line (170,370, 170,480);

line (0,270, 50,270);

line (50,270, 50,420);

line (50,420, 120,420);

line (120,420, 120,480);

line (590,200, 590,220);

line (590,220, 450,220);

line (450,220, 450,150);

line (450,270, 550,270);

line (550,270, 550,370);

line (550,370, 470,370);

line (470,370, 470,480);

line (590,270, 590,420);

line (590,420, 520,420);

line (520,420, 520,480);

line (590,270, 640,270);

line (190,270, 190,430);

line (190,430, 450,430);

line (450,430, 450,270);

setcolor (13);

rectangle (220,85, 420,135);

rectangle (220,175, 420,225);

rectangle (220,265, 420,315);

rectangle (220,355, 420,405);

}

void Screen (void) //заставка

{

setcolor (8);

settextstyle( DEFAULT_FONT, HORIZ_DIR, 60 );

settextjustify(CENTER_TEXT,CENTER_TEXT);

outtextxy( getmaxx()/2, getmaxy()/2-32, "Опасный лабиринт" );

setcolor (14);

rectangle (200,300,440,340);

for (int x=200; x<=440; x++)

{

setcolor (1);

settextstyle( DEFAULT_FONT, HORIZ_DIR, 20 );

outtextxy( 320, 320, "Загрузка..." );

setcolor (14);

line (x,300,x,340);

sleep (10);

}

}

void CurShow (int xc, int yc) //рисование курсора

{

setcolor (11);

circle (xc,yc,10);

}

void CurHide (int xc, int yc) // закрашивание курсора

{

setcolor (0);

Похожие материалы

Информация о работе