Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа Мельников УК-02.docx
Скачиваний:
0
Добавлен:
23.12.2018
Размер:
715.01 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ

«КИЇВСКИЙ ПОЛІТЕХНІЧНИЙ ІНТИТУТ»

Кафедра математичного моделювання економічних систем

КУРСОВА РОБОТА

з дисципліни

«Економічна кібернетика»

на тему: «Реалізація об’єктно-орієнтованого підходу при розробці програми, що моделює гру SQ CaRs»

Студент Мельников Єгор Андрійович

Група УК-02

Дата перевірки_________________________

Дата захисту___________________________

Оцінка________________________________

Члени комісії__________________________

______________________

______________________

(підписи, прізвища, ініціали)

Київ – 2011

Зміст

Вступ 3

1. Опис предметної області 4

2. Опис структури класів та їх взаємодія 6

3. Постановка задачі 9

4. Програмна реалізація гри SQ CaRs. 10

Висновок 14

Список використаних джерел 15

Додаток А 16

Вступ

Дана курсова робота присвячена моделюванню гри "SQ CaRs" за допомогою мови С++ з використанням пакету Microsoft Visual Studio 2010 та графічної бібліотеки OpenGL в середовищі Windows.

Метою цієї роботи є засвоєння та вдосконалення практичних навичок, здобутих протягом семестру.

С++ - високорівневна мова програмування з підтримкою декількох парадигм програмування, яка базується на мові С. Ця мова розроблялася як розширення мови С задля того, щоб виправити недоліки, які були присутні у мові С.

Головним нововведенням С++ є механізм класів, що дає можливість визначати і використовувати нові типи даних, збільшення відсотку повторного використання вже написаного коду, що досягається механізмом наслідування. Також наслідування забезпечує один з механізмів реалізації поліморфізму - базової концепції об'єктно-орієнтованого програмування, згідно з якою, для виконання однотипної обробки різних типів даних може використовуватися один і той же код. Власне, поліморфізм - теж один із методів забезпечення повторного використання коду.

На даний момент мова С++ залишається однією із найбільш популярних мов програмування і використовується для написання багатьох різноманітних моделей.

OpenGL — (англ. Open Graphics Library — відкрита графічна бібліотека) — специфікація, що визначає незалежний від мови програмування крос-платформовий програмний інтерфейс (API) для написання застосунків, що використовують 2D та 3D комп'ютерну графіку. Даний інтерфейс містить понад 250 функцій, які можуть використовуватися для малювання складних тривимірних сцен з простих примітивів. Широко застосовується індустрією комп'ютерних ігор і віртуальної реальності, у графічних інтерфейсах, при візуалізації наукових даних, в системах автоматизованого проектування тощо.

1. Опис предметної області

Аркада (англ. arcade)- поширений у пострадянській індустрії комп'ютерних ігор термін, що позначає комп'ютерні ігри з навмисно примітивним ігровим процесом. Ігри, в яких гравцеві доводиться діяти швидко, покладаючись в першу чергу на свої рефлекси і реакцію. Ігровий процес простий і не змінюється протягом гри. Аркади характеризуються розвиненою системою бонусів: нарахування очок, поступово відкриваються елементи гри і т. д.

SQ CaRs - це компьютерна гра, ідея якої була взята з ігрових приставок, які раніше були дуже популярними, наприклад BRICK GAME. На цих приставках можна грати в багато ігр, в тому числі в Тетріс та гонки. Саме ця гра без назви, яку усі називають просто "гонки" і була використана, як ідеологічна основа для цієї курсової роботи.

Рис 1. Портативна ігрова приставка BRICK GAME

Суть цієї гри є в тому, що гравцю потрібно проїхати як можна далі не врізаючись в стіни та інші машини.

2. Опис структури класів та їх взаємодія

Виходячи із аналізу предметної області, що був виконаний у першому розділі курсової роботи, побудована нотація Буча для даної моделі виглядає наступним чином:

Tshape

float x, y;

int color;

Tblock

void block();

text

const char* itext;

void drawtext(const char*, int, float, float);

void hidetext();

car

float cx, cy;

bool crash, godmode;

car(float, float, int, bool, bool);

~car();

wall

float wx, wy;

int wpos

wall(float, int, int);

~wall(void);

grass

float gwidth, gm;

grass(float, float);

~grass ();

game_over

float gox, goy;

game_over(float, float, int);

~game_over();

menu

bool selection;

void show();

void draw_select(bool);

Рис.2 Діаграма класів

Опис полів та методів:

Клас Tshape - поле для малювання

  • Поле x, y – координати

  • Поле color - колір

Клас Tblock – блок

  • Метод void block – малує один блок

Клас text - текст

  • Поле *itext – текст

  • Метод void drawtext – выводить текст

  • Метод void hidetext – замальовує текст

Клас car - машинка

  • Поле cx, cy – координати центра машинки

  • Поле crash - показує, потрапила машинка в аварію чи ні

  • Поле godmode - політ

  • Конструктор car – малює машинку

  • Деструктор ~car – замальовує машинку

Клас grass - трава

  • Поле gwidth – ширина дороги

  • Поле gm - рух трави

  • Конструктор grass – малює траву

  • Деструктор ~grass – замальовує траву

Клас wall - стінка

  • Поле wx, wy – координати центра стінки

  • Поле wpos - положення стінки (справа чи зліва)

  • Конструктор wall – малює стінку

  • Деструктор ~wall – замальовує стінку

Клас game_over - напис "GAME OVER"

  • Поле gox, goy – координати центра напису

  • Конструктор game_over – малює напис

  • Деструктор ~ game_over – замальовує напис

Клас menu - меню гри

  • Поле selection – вибір меню

  • Метод show – малює меню

  • Метод draw_select – малює вибір у меню