загрузка...

трусы женские
загрузка...
Реферати » Реферати з інформатики та програмування » Допомога в навчанні програмуванню

Допомога в навчанні програмуванню

Наша пропозиція для тих, хто хоче навчитися програмувати на Delphi, вивчаючи исходники інших програм!
Ви можете безкоштовно скачати саму гру (ТЕТРІС), але зобов'язані заплатити 5 доларів за исходник програми. Ви отримуєте повний текст програми на
Delphi і коментарі до неї! Всього за 5 доларів ви зможете вивчити текст найвідомішою програми і зрозуміти, як створюються ігри, такі як Tetris!
Ми дамо вам математичний алгоритм програми! Тепер ви станете набагато досвідченіше і зможете самостійно створювати програми і заробляти на цьому гроші як в реальному житті, так і в інтернеті!
Уникайте своїх помилок, ми навчилися правильно програмувати і допоможемо

навчити цьому вас! www.tetriswithsource
Опис модулів
TetrisP - Основний файл проекту
Tetris00 - Модуль містить основну форму проекту (TMainForm). Виробляє в'язку між натисканнями гарячих клавіш і кнопок панелі управління з викликом процедур обробки відповідних подій знаходяться в модулі Tetris02 і викликам процедур промальовування поля.
Tetris01 - Модуль містить визначення осередку поля (TFieldCell), як записи про колір і номері відображуваної в комірці текстури. А також реалізацію ігрового поля (клас TField) - дозволяє проводити отрисовку і найпростіші операції над ігровим полем.
Tetris02 - Модуль містить реалізацію алгоритму гри (клас TTetrisGame), обробляє події від таймера, веде статистику (час гри, кількість випущених фігур, віддалених ліній). Створює фігуру випадковим чином фігуру яка буде активною в перебігу наступного проміжку часу і виробляє з нею безпосередню взаємодію. Відловлює всі логічні помилки відбуваються під час гри і пов'язані наприклад зі спробою запустити вже активну гру.
Tetris03 - Модуль містить методи по роботі з усіма фігурами використовуваними в проекті і враховує всі їх особливості реалізації. (Класи фігур
TXXXXFigure).
Tetris04 - Модуль містить визначення констант використовуються в програмі і процедуру генерації кольору випадковим чином з урахуванням того що колір не повинен буде зливатися з порожньою осередком поля.
Tetris05 - Модуль містить форму налаштувань (TOptionsForm) дозволяє відображати список існуючих фігур читати і встановлювати їх властивість
Enabled.
Tetris06 - Модуль містить визначення структури (TFigureInfo) для зберігання необхідної інформації про існуючу фігурі, масив записів цього типу з описом всіх фігур проекту (для можливості відображення у формі налаштувань і вибору фігури випадковим чином), а також методи з доступу до цих даних
Tetris07 - Модуль забезпечує багатомовну підтримку. Він містить в собі визначення всіх строкових констант використовуються в повідомленнях проекту та дозволяє створювати здійсненний файл з повідомленнями як англійською так і російською мовою.

Опис класів
TMainForm - клас основної форми проекту. Включає в себе такі об'єкти, як
| MainToolBar | панель інструментів | Розташована на формі в правій частині і |
| | (TToolBar *) | містить в собі набір кнопок (btnXXXX) |
| btnXXXX | кнопки (TButton *) | Розташовані на панелі інструментів і |
| | | призначені для зручного виклику заданих |
| | | процедур |
| MainImageList | список зображень | Містить зображення іконок використовуваних |
| | (TImageList *) | кнопками (btnXXXX ) |
| MainActionList | список дій | Містить перелік дій (actXXXX) |
| | (TActionList *) | використовується програмою |
| actXXXX | дії (TAction *) | Призначена зв'язку кнопок (btnXXXX), |
| | | гарячих клавіш і виклику заданих процедур |
| MainPanel | панель (TPanel *) | Розташована у верхній частині форми і |
| | | призначена для висновки статистичної |
| | | інфорамції (час, кількість фігур, |
| | | кількість віддалених ліній) в процесі гри |
| MainImage | зображення | Розташоване в центральній частині форми і |
| | (TImage) * | призначена для показу ігрового поля на |
| | | екрані. (Та не його промальовування!) |
| MainStatusBar | рядок стану | Розташована в нижній частині основної форми, |
| | (TStatusBar) * | призначена для відображення статусу ігри |
| | | (активна, призупинена, закінчена і |
| | | т.д.) і підказки для кнопок над якими |
| | | знаходиться маніпулятор миша |
| fReg | реєстр | Призначена для роботи з реєстром - |
| | (TRegistryDef *) | збереженням налаштувань програми між |
| | | сеансами роботи |
| fField | ігрове поле | Реалізує зберігання логічної інформації про |
| | (TField) | стані поля і його промальовування тобто висновок |
| | | в зображення (TImage) |
| fOptionsForm | форма налаштувань | Призначена для можливості вибору фігур |
| | (TOptionsForm) | використовуються у програмі |
| fGame | гра (TTetrisGame) | Реалізує алгоритм ігри |


(* - позначені стандартні об'єкти Delphi)

TFieldCell - запис містить інформацію про кожному осередку ігрового поля.
| Color | longint | Колір у клітинці якщо не використовується |
| | | текстура |
| FigureNum | integer | Номер фігури яка потрапляє в дану |
| | | осередок. 0 - якщо фігури немає |
| TextureNum | smallint | Номер текстури в комірці. Негативні |
| | | числа відповідають текстурам бомб |

TField - клас ігрове поле. Включає в себе такі об'єкти, як
| fBomb | Список об'єктів | Призначений для зберігання списку текстур |
| | (TObjectList) | бомб |
| fTexture | Список об'єктів | Призначений для зберігання списку текстур |
| | (TObjectList) | непорожніх клітин |
| fImage | Зображення (TImage) | Призначено для зберігання покажчика на |
| | | зображення основної форми |
| fFieldMatrix | Матриця | Призначена для зберігання масиву з |
| | (TFieldMatrix) | даними типу TFieldCell про клітини. |

Поля:
| fFieldSize | Розмір комірки | Зберігає розмір комірки поля у пікселях |
| | (integer) | |

властивості:
| FieldCountX | Число осередків по X | Дозволяє визначити розмір поля в |
| | (integer) | кількості осередків вздовж X |
| FieldCountY | Число осередків по Y | Дозволяє визначити розмір поля |
| | (integer) | пристосований для гри в кількості |
| | | осередків вздовж Y * |
| FieldRealCountY | Число осередків по Y | Дозволяє визначити фактичний розмір |
| | (integer) | поля в кількості осередків вздовж Y |
| FieldVisibleCountY | Число осередків по Y | Дозволяє визначити видимий розмір поля в |
| | (integer) | кількості осередків вздовж Y |


* Фактично розмірність масиву по X збігається з тим що відображається на екрані, по Y ситуація інша. Фактично в пам'яті поле представлено по Y з великим розміром (+ ReservedLines). Це викликано необхідністю зберігати дані про фігуру яка тільки почала падати і знаходиться поза межами видимості в верних рядках і тим що саме по зайнятості хоча б одного осередку верхніх ReservedLines рядків визначається закінчена гра чи ні.
Фактичний розмір визначається FieldRealCountY, допустимий для знаходження фігур FieldCountY. У той же час на екрані може відображатися будь-яке число рядків від 1 до FieldRealCountY. Тому присутня ще одна властивість
FieldVisibleCountY, яке якраз і визначає скільки рядків видно користувачеві. Зокрема цей момент використовувався при налагодженні - коли на екрані було все поле цілком, фігура починала падати не з самого верху і гра закінчувалася коли постать застрявала на верхніх ReservedLines рядках, а не обов'язково досягнувши верхньої межі. методи:
| ClearAll | Очищення ігрового поля, шляхом занесення 0 в усі |
| | осередки |
| ClearCell (x , y: integer) | Очищення комірки (x, y) шляхом занесення 0 в цей осередок |
| SetAtCell (x, y: integer; const | Установка в клітинку (x, y) значення Cell . Тобто |
| Cell: TFieldCell) | логічне отримання зайнятої комірки |
| GetAtCell (x, y: integer) | Отримання значення з комірки ( x, y) |
| ClearAt | Визначає чи вільна комірка (x, y) логічно і якщо |
| (x, y: integer; CurCell: PFieldCel | вказаний CurCell то осередок вважається вільною навіть |
| l = nil) | коли там знаходиться значення збігається з CurCell. |
| DelFullLine | Видалення однієї з повністю зайнятих рядків. |
| IsOverflow | Перевірка на переповнення. Переповненим полем |
| | вважається поле для якого хоча б одна комірка |
| | верхніх ReservedLines зайнята |
| DeleteFigure ( FigureNum: integer | Видалення з поля фігури з номером FigureNum. |
|) | Використовується при падінні Бомби-2 |
| DrawToImage | Прорисовка поточного стану поля |

Гра може знаходиться в одному з логічних станів:
| gmNothing | Гра не розпочато |
| gmActive = 1 | Гра йде |
| gmSuspend = 2 | Гра призупинена |
| gmEnded = 3 | Гра завершена |
| gmAborted = 4 | Гра перервана користувачем |
| gmGraphicErr | Гра завершена з помилкою під час малювання |
| or | |
| gmCreateFigu | Гра завершена з помилкою створення фігури |
| reError | |

TTetrisGame - клас який реалізує алгоритм гри. Включає в себе такі об'єкти, як:
| fFiguresEnum | управління набором | Реалізує зберігання і доступ до масиву |
| | фігур | існуючих фігур |
| | (TFigureEnumManager) | |
| fField | ігрове поле | Призначено для зберігання покажчика на |
| | (TField) | об'єкт ігрове поле |
| fCurrentFigure | поточна фігура | Призначено для зберігання покажчика на |
| | (TBaseFigure) | поточну фігуру і проведення з нею всяких |
| | | операцій типу обертання |
| fTimer | таймер (TTimer *) | Призначений для появи подій в |
| | | програмі через певний проміжок |
| | | часу, щоб реалізовувати переміщення |
| | | фігури |

поля:
| fQuickCoef | коефіцієнт | Призначено для зберігання коефіцієнта, |
| | прискорення (integer) | який використовується при прискореному |
| | | падінні фігури при натисканні клавіші |
| fInProcess | статус гри (byte) | Призначено для зберігання статусу ігри |
| fFigNum | кількість фігур | Призначено для зберігання числа |
| | (integer) | випущених фігур і відображенні в |
| | | статистиці |
| fTimerClicks | час гри (integer ) | Призначено для зберігання часу гри і |
| | | відображенні в статистиці |
| fDeletedLines | число віддалених | Призначено для зберігання числа віддалених |
| | ліній (integer) | ліній і відображенні в статистиці |
| fOldTimer | інтервал таймера | Інтервал таймера до прискорення або 0 якщо |
| | (integer) | таймер знаходиться

Сторінки: 1 2
загрузка...
ur.co.ua

енциклопедія  з сиру  аджапсандалі  ананаси  узвар