Автор работы: Пользователь скрыл имя, 18 Января 2011 в 11:41, курсовая работа
Тетріс є дбре розвиваючою і цікавою грою і внаш час. Тому я поставив за мету створити гру, яка була б водночас простою, цікавою і вдеякій мірі корисною. Користь тетрісу я вбачаю в здатності цієї гри добре розвивати логічне мислення і швидкість прийняття рішень. В своїй грі я збираюсь дотримуватися часткової аналогії з оригіналом , але з деякими покращеннями і вдосконаленнями.
Наприклад покращення можуть бути такими:
•Використання яскравих кольорів у грі;
•Використання яскравих звукових ефектів;
•Простота виконання самого ігрового процесу;
•Достатній рівень складності;
ВСТУП
1 ПОСТАНОВКА ЗАДАЧІ.............................5
2 АЛГОРИТМ РОЗВ’ЯЗАННЯ ЗАДАЧІ.......6
2.1 Алгоритм створення вікна.………………………………...6
2.2 Алгоритм виводу зображення в вікні.…………………7
2.3 Алгоритм створення функції руху і обробки повідомлень клавіш.……..............................................10
3 ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ.............. 11
ВИСНОВКИ.....................................................12
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ.....13
ДНІПРОПЕТРОВСЬКА
ОБЛАСНА РАДА
ОБЛАСНИЙ КОМУНАЛЬНИЙ
ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД
"ІНСТИТУТ ПІДПРИЄМНИЦТВА "СТРАТЕГІЯ"
КАФЕДРА КОМП’ЮТЕРНИХ ТА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Курсова робота
З дисципліни “Основи програмування та алгоритмічні мови”
На тему “Гра Тетріс”
Студент
групи П-09-51
Глеб Анатолій Сергійович
Керівник
Девяткін Іван Вікторович
м.
Жовті Води
2010
ЗМІСТ
Вступ
Темою моєї курсової роботи була обрана гра «Тетріс».
Тетріс — популярна комп'ютерна гра-головоломка, розроблена Олексієм Пажитновим та його колегами. Перша версія гри була представлена 6 червня 1984 року, коли він працював в ОЦ Академії наук СРСР в Москві. Назву гри автор створив поєднавши грецький префікс "тетра-" зі словом "теніс" - улюбленою грою Пажитнова .
Ця гра, чи один з її варіантів, існує майже для кожної ігрової консолі та операційної системи, а також для інших електронних пристроїв: мобільних телефонів, портативних медіаплеєрів, кишенькових комп'ютерів тощо.
А зараз трішки з історії створення першої
гри. В
червні 1984
року співробітник
Обчислювального центру Академії наук
СРСР Олексій
Пажитнов, який
займався проблемами штучного інтелекту
і розпізнавання мови, вирішив написати
гру-головоломку для мінікомп'
Перший варіант гри, написаної Пажитновим,
міг змінювати положення фігур шляхом
повороту їх на 90 градусів щодо їх геометричного
центру. Однак на той час потужність комп'ютерів
не дозволяла запустити таку програму.
Тоді розробник вирішив спростити завдання,
забравши у кожної з фігур по одному квадратику,
зменшивши їх кількість до чотирьох. Так
з'явилася перша версія тетріса для мікрокомп'ютера Електроніка-60
Пізніше Вадим Герасимов переписав цю гру для IBM PC. Після чого гра набула великої популярності.
Після появи тетрісу кілька найбільших на той час компаній з розробки системного забезпечення, комп'ютерних та ігрових застосунків — Spectrum Holobyte і Mirrorsoft, Bullet-Proof Software і Atari Games, Famicom і його американський аналог Nintendo Entertainment System - почали тривалу боротьбу за придбання прав на випуск всіх варіацій і консольних версій тетрісу.
У 1988 році за підтримки Хенке Роджерса Пажитнов організував компанію з розробки ігрового програмного забезпечення AnimaTek, а 1991 року було створено компанію Tetris.
Тетріс є дбре розвиваючою і цікавою грою і внаш час. Тому я поставив за мету створити гру, яка була б водночас простою, цікавою і вдеякій мірі корисною. Користь тетрісу я вбачаю в здатності цієї гри добре розвивати логічне мислення і швидкість прийняття рішень. В своїй грі я збираюсь дотримуватися часткової аналогії з оригіналом , але з деякими покращеннями і вдосконаленнями.
Наприклад покращення можуть бути такими:
Я гадаю, що дотримуючись поставлених перед собою вимог, моя гра вийде не гіршою від її оригіналу. Але про це звичайно судити не мені, а краще гру зможуть оцінити люди які спробують пограти в неї.
Темою курсової роботи є всім добре відома гра «Тетріс». В процесі створення гри було поставлено ряд задач . При виконані курсової роботи необхідно розробити зручний візуальний інтерфейс, керування, та забезпечити програму необхідною функціональністю.
Процес виконання курсової
В ході створення гарного і яскравого графічного інтерфейсу буде використовуватися OpenGL (Open Graphics Library) - відкрита графічна бібліотека OpenGL, стандартна бібліотека «GL / glu.h», а також мову програмування С++.
Загалом
вже завершена программа
Розроблений програмний продукт призначатиметься для користувачів різних вікових категорій, і розумових здібностей. Ця гра була культовою протягом багатьох поколінь і мала грандіозний успіх.
При виконанні курсової роботи головним
джерелом інформації були конспект лекцій
з предмету «Основи програмування та алгоритмічних
мов», навчальна література з OpenGL та мови програмування
С/C++, а також інтернет зокрема сайт http://www.gamedev.ru.
2 Алгоритм розв’язання задачі
Під час виконання курсової роботи необхідно розв’язати ряд завдань:
А тепер
детальніше про кожен із наведених
вище пунктів.
2.1 Алгоритм створення вікна
Викликаємо функцію WinMain – функція входа впрограму:
int WINAPI WinMain(HINSTANCE hIn, HINSTANCE hPrevIn, LPSTR szCmd, int nShow)
{
srand((UINT)time(
WNDCLASS A;
A.cbClsExtra = 0;
A.cbWndExtra = 0;
A.style = CS_HREDRAW | CS_VREDRAW;
A.hbrBackground = (HBRUSH)COLOR_WINDOW;
A.hInstance = hIn;
A.hIcon = NULL;
A.hCursor = LoadCursor(NULL, IDC_ARROW);
A.lpszClassName = WinApp;
A.lpszMenuName = NULL;
A.lpfnWndProc = mProc;
if(!
return 1;
HWNDX=CreateWindow(WinApp,
Сама ж функція, яка створює вікно є функція CreateWindow, яка має наступні параметри:
10.Дескриптор екземпляра пріложенія;
11.Вказівник на дані створення вікна;
Вікно зображене на мал.1.
Малюнок 1.(Головне вікно)
2.2 Алгоритм виводу зображення в вікні
В області ігрового процесу спершу зображуємо ігрову сітку:
float fT;
glNewList(gPole, GL_COMPILE);
glColor3f((
for(fT = mnX; fT <= mX; fT += K)
{
glBegin(GL_
glVert
glVert
glEnd();
}
for(fT = mnY; fT <= mY; fT += K)
{
glBegin(GL_
glVert
glVert
glEnd();
}
Вона має вигляд зображений на мал.2.
Малюнок 2.(Зображення ігрової сітки)
Від тексту
в інформаційній області
HFONT hFontNew = CreateFont(
30, // высота шрифта
10, // средняя ширина символа
0, // угол наклона
0, // угол ориентации базисной линии
FW_SEMIBOLD, // толщина шрифта
20,
// описатель параметра
0,
// описатель параметра
0,
// описатель параметра
ANSI_CHARSET, // идентификатор набора символов
OUT_DEFAULT_PRECIS, // точность вывода
CLIP_DEFAULT_PRECIS, // точность отсечения
DEFAULT_QUALITY, // качество вывода
0, // шаг между символами шрифта и семейство
"TOXA" // имя гарнитуры шрифта
); //Функция CreateFont создает логический шрифт с заданными характеристиками.
Малюнок 3.
Вивід фігурок відбувається за принципом малювання куба :
void Q::pCb(int x, int y)
{
y = nSizeY - y;
glBegin(GL_QUADS);
glVertex3f((GLfloat)((x*K)+
glVertex3f((GLfloat)(((x+1)*K)
glVertex3f((GLfloat)(((x+1)*K)
glVertex3f((GLfloat)((x*K)+