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

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

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

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

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Гра Тетріс

Тип Реферат
Предмет Информатика
Просмотров
843
Размер файла
104 б
Поделиться

Ознакомительный фрагмент работы:

Гра Тетріс

ДНІПРОПЕТРОВСЬКА ОБЛАСНА РАДА
ОБЛАСНИЙ КОМУНАЛЬНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД
"ІНСТИТУТ ПІДПРИЄМНИЦТВА "СТРАТЕГІЯ"

КАФЕДРА КОМП’ЮТЕРНИХ ТА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ

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

З дисципліни “Основи програмування та алгоритмічні мови”

На тему “Гра Тетріс”

Студент
групи П-09-51
Глеб Анатолій Сергійович

Керівник
Девяткін Іван Вікторович

м. Жовті Води
2010

ЗМІСТ

Вступ

1 Постановка задачі.............................5

2 Алгоритм розв’язання задачі.......6

2.1 Алгоритм створення вікна.………………………………...6

2.2 Алгоритм виводу зображення в вікні.…………………7

2.3 Алгоритм створення функції руху і обробки повідомлень клавіш.……..............................................10

3 програмне забезпечення.............. 11

Висновки.....................................................12

Список використаної літератури.....13

Вступ

Темою моєї курсової роботи була обрана гра «Тетріс».

Тетріс — популярна комп'ютерна гра-головоломка, розроблена Олексієм Пажитновим та його колегами. Перша версія гри була представлена 6 червня 1984 року, коли він працював в ОЦ Академії наук СРСР в Москві. Назву гри автор створив поєднавши грецький префікс "тетра-" зі словом "теніс" - улюбленою грою Пажитнова .

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

А зараз трішки з історії створення першої гри. В червні 1984 року співробітник Обчислювального центру Академії наук СРСР Олексій Пажитнов, який займався проблемами штучного інтелекту і розпізнавання мови, вирішив написати гру-головоломку для мінікомп'ютера. Передбачалося, що нова гра стане вдосконаленою варіацією його улюбленої класичної гри Pentomino Puzzle.

Перший варіант гри, написаної Пажитновим, міг змінювати положення фігур шляхом повороту їх на 90 градусів щодо їх геометричного центру. Однак на той час потужність комп'ютерів не дозволяла запустити таку програму. Тоді розробник вирішив спростити завдання, забравши у кожної з фігур по одному квадратику, зменшивши їх кількість до чотирьох. Так з'явилася перша версія тетріса для мікрокомп'ютера Електроніка-60.

Пізніше Вадим Герасимов переписав цю гру для IBM PC. Після чого гра набула великої популярності.

Після появи тетрісу кілька найбільших на той час компаній з розробки системного забезпечення, комп'ютерних та ігрових застосунків — Spectrum Holobyte і Mirrorsoft, Bullet-Proof Software і Atari Games, Famicom і його американський аналог Nintendo Entertainment System - почали тривалу боротьбу за придбання прав на випуск всіх варіацій і консольних версій тетрісу.

У 1988 році за підтримки Хенке Роджерса Пажитнов організував компанію з розробки ігрового програмного забезпечення AnimaTek, а 1991 року було створено компанію Tetris.

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

Наприклад покращення можуть бути такими:

· Використання яскравих кольорів у грі;

· Використання яскравих звукових ефектів;

· Простота виконання самого ігрового процесу;

· Достатній рівень складності;

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

1 Постановка задачі

Темою курсової роботи є всім добре відома гра «Тетріс». В процесі створення гри було поставлено ряд задач . При виконані курсової роботи необхідно розробити зручний візуальний інтерфейс, керування, та забезпечити програму необхідною функціональністю.

Процес виконання курсової роботи можна розбити умовно на такі етапи:

· Створення головного вікна, де відбуватиметься весь ігровий процес;

· Створення яскравого графічного інтерфейсу, тобто приємних для очей фона і фігурок;

· Створення правильної фізики руху фігурок, фізика повинна відповідати фізиці оригіналу;

· Створення гарного звукового супроводу;

В ході створення гарного і яскравого графічного інтерфейсу буде використовуватися OpenGL (Open Graphics Library) - відкрита графічна бібліотека OpenGL, стандартна бібліотека «GL / glu.h», а також мову програмування С++.

Загалом вже завершена программа повинна мати вигляд вікна в якому є дві області :

1. По-перше, область ігрового процессу, в цій області вікна буде відбуватися сама гра і безпосередній контакт користувача з програмним продуктом ;

2. По-друге, інформаційна область, в якій відображається інформація про кількість спалених ліній і клітин.

Розроблений програмний продукт призначатиметься для користувачів різних вікових категорій, і розумових здібностей. Ця гра була культовою протягом багатьох поколінь і мала грандіозний успіх.

При виконанні курсової роботи головним джерелом інформації були конспект лекцій з предмету «Основи програмування та алгоритмічних мов», навчальна література з OpenGL та мови програмування С/C++, а також інтернет зокрема сайт http://www.gamedev.ru.


2 Алгоритм розв’язання задачі

Під час виконання курсової роботи необхідно розв’язати ряд завдань:

1. Створити графічне вікно, яке міститиме дві області;

2. Створити в вікні ігрове поле;

3. Створити інформаційну область;

4. Створити функції для руху і повороту фігур;

А тепер детальніше про кожен із наведених вище пунктів.

2.1 Алгоритм створення вікна

Викликаємо функцію WinMain – функція входа впрограму:

int WINAPI WinMain(HINSTANCE hIn, HINSTANCE hPrevIn, LPSTR szCmd, int nShow)

{

srand((UINT)time(NULL));

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(!RegisterClass(&A))

return 1;

HWNDX=CreateWindow(WinApp,WinApp,WS_SYSMENU, 100, 100, WinX, WinY, NULL, NULL, hIn, NULL);

Сама ж функція, яка створює вікно є функція CreateWindow, яка має наступні параметри:

1. Вказівник на зареєстроване ім'я класу;

2. Вказівник на ім'я вікна;

3. Стиль вікна;

4. Горизонтальна позиці вікна;

5. Вертикальна позиція вікна;

6. Ширина вікна;

7. Висота вікна;

8. Дескриптор батьківського вікна або вікна власника;

9. Дескриптор меню або ідентифікатор дочірнього вікна;

10.Дескриптор екземпляра пріложенія;

11.Вказівник на дані створення вікна;

Вікно зображене на мал.1.

Малюнок 1.(Головне вікно)

2.2 Алгоритм виводу зображення в вікні

В області ігрового процесу спершу зображуємо ігрову сітку:

float fT;

glNewList(gPole, GL_COMPILE);

glColor3f((GLfloat)0.0, (GLfloat)0.5, (GLfloat)0.0);

for(fT = mnX; fT <= mX; fT += K)

{

glBegin(GL_LINES);

glVertex3f((GLfloat)fT, mnY, 0);

glVertex3f((GLfloat)fT, mY, 0);

glEnd();

}

for(fT = mnY; fT <= mY; fT += K)

{

glBegin(GL_LINES);

glVertex3f((GLfloat)mnX, fT, 0);

glVertex3f((GLfloat) mX, fT, 0);

glEnd();

}

Вона має вигляд зображений на мал.2.

Малюнок 2.(Зображення ігрової сітки)

Від тексту в інформаційній області відбуваеться за допомогою створення шрифта і виведення його в вікні (мал..3.)

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)+mnX+D),(GLfloat)((y*K)+mnY+D), (GLfloat)0.0);//лев низ

glVertex3f((GLfloat)(((x+1)*K)+mnX-D),(GLfloat)((y*K)+mnY+D), (GLfloat)0.0);//прав низ

glVertex3f((GLfloat)(((x+1)*K)+mnX-D),(GLfloat)(((y+1)*K)+mnY-D), (GLfloat)0.0);//правверх

glVertex3f((GLfloat)((x*K)+mnX+D),(GLfloat)(((y+1)*K)+mnY-D), (GLfloat)0.0);//лев верх

glEnd();

}

Самі ж фігурки загружаються з текстової старочки в якій записано позиції і положення фігур:

Char szT[]="1111100000&50-1310&121101&3101&121000-3100&112000&1320&211011-1300&112110&3102&211000-2210&121001-2201&121100-10-2200-131000&113110&131202&311011-~";

Вікно в якому зображено фігуру знаходиться на малюнку 4.

Малюнок 4.

Після того, як користувач за якихось причин програв, на екран з'явиться повідомлення «YOU LOSE» и вікно закриється після натискання користувачем ENTER (мал. 5.)

Малюнок 5.

2.3 Алгоритм створення функції руху і обробки повідомлень клавіш

В грі рух фігур здійснюється за допомогою функцій pMv(); i Rot();

Функція pMv() :

pMv()

{

for(nCur = 0; nCur < nFigX; nCur++)

{

if(nPole[nPosX+nCur][nPosY+nFigY[nCur]+nFigY[nCur+nFigX]])

break;

}

if(nCur == nFigX)

{

nPosY++;

}

}

Ця функція відповідая зарух фігурок в низ.

LRESULT CALLBACK WndProc(HWND, UINT,WPARAM, LPARAM) -функція обробки повідомлень.

case WM_KEYDOWN:

if(wParam == VK_LEFT)

{ App.bLf();

break;

}if(wParam == VK_RIGHT)

{App.bRt();

break;

}if(wParam == VK_DOWN)

{App.pMv();

break;

}if(wParam == VK_UP)

{if(!App.bPause)

App.Rot();

break;

}if(wParam == VK_SPACE)

{App.bPs();

break;

}

3 Програмне забезпечення

Даний проект складається з трьох файлів: MainCode.cpp, Q.cpp, class.h , але найважливішим є файл Q.cpp - головний файл програми, який містить у собі такі функції:

· nwGame(); - відповідає за стартгри;

· pMv(); - відповідає за рух фігурок;

· pLf(); - обробка руху в ліво;

· pRt(); - обробка руху в право;

· pSt(); - відповідає за таймер;

· bPs(); - відповідає за паузу;

· Rot(); -відповідає за повороп фігур;

· pCb(); - відповідає за малювання кубиків;

· Hit(); - відповідає за вивід тексту;

В файлі MainCode.cpp знаходиться функція обробки повідомлень LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM) -функція обробки повідомлень, і реєстрація і створення головного вікна програми.

В файлі class.h знаходиться оголошення всіх необхідних бібліотек, а також оголошення сласу Q.

Програмний продук виконувався з використанням OpenGL.

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

Підчас виконання курсової роботи було розроблено програмний продукт гру «Тетріс».Гра вийшла дуже гарною, простою в керуванні з достатньою стійкістю роботи.

Вимоги до гри можна назвати мінімальними, адже гра повинна запуститись на моделях ПК до програмних потреб можна віднести встановлений Windows.

Для запуску гри потрібно перейти у папку де знаходитися виконуючий ехе файл, та запустити його. Після чого з’явиться графічний інтерфейс та можна буде одразу почати гру.


Висновки

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

  1. Візуальне оформлення;
  2. Звукове оформлення;

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

Для покращення роботи гри можливі наступні доповнення у подальшому:

· Створення запису і збереження рекордних ігор користувачів

· Ускладнення ігрового процесу за рахунок збільшення кількості ігрових рівнів

· Встановлення повно екранного ігрового режиму

· Показ наступної фігури

Написання курсової дало багато досвіду в розробці програмного забезпечення, вивчення нового матеріалу, як приклад графічна бібліотека OpenGL , а також основи мови програмування С++.

Загалом написану гру я вважаю не непоганою, але з потребою доопрацювання.


Список використаної літератури

1. Щупак Ю.А. Эффективная разработка приложений, - Питер, 2007.

2. Використання матеріалів із сайту www.wikipedia.ua та www. Gamedev.ru.

3. Конспект лекцій з дисцепліни «Основи програмування та алгоритмічних мов»

4. Методичні вказівки до оформлення пояснювальних записок з курсової роботи студентів для спеціальності "Програмне забезпечення автоматизованих систем", - Жовті Води, ОКВНЗ «ІП «Стратегія», 2010.


Нет нужной работы в каталоге?

Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Тгу им. Г. Р. Державина
Реферат сделан досрочно, преподавателю понравилось, я тоже в восторге. Спасибо Татьяне за ...
star star star star star
РЭУ им.Плеханово
Альберт хороший исполнитель, сделал реферат очень быстро, вечером заказала, утром уже все ...
star star star star star
ФЭК
Маринаааа, спасибо вам огромное! Вы профессионал своего дела! Рекомендую всем ✌🏽😎
star star star star star

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

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

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

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

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

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

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

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

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

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

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

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

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

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

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

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

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

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

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

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

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

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

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

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

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