Балтийский государственный технический университет «Военмех» им. Д.Ф.Устинова
Кафедра И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);
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.