Ігрова комп’ютерна програма "Конструктор пазлів"

Історія і різновиди пазлів. Об’єктно-орієнтовне програмування. Історія створення мови програмування Delphi. Інтегроване середовище розробки Delphi. Загальний огляд компонентів та інтерфейсу ігровой програми "Конструктор пазлів". Опис класу та процедур.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 14.12.2018
Размер файла 4,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ПЕДАГОГІЧНИЙ УНІВЕРСИТЕТ

ІМЕНІ М.П. ДРАГОМАНОВА

Факультет інформатики

Кафедра інформаційних технологій і програмування

Курсова робота з програмування

на тему: Ігрова комп'ютерна програма "Конструктор пазлів"

Студента 31 ІА групи

Напряму підготовки 6.040302 “Інформатика*”

Яценка Олега Олександровича

Науковий керівник:

старший викладач

Оніщенко Сергій Миколайович

Київ - 2018

ВСТУП

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

Тема курсової роботи: створення ігрової комп'ютерної програми «Конструктор пазлів»

Метою (завданням) даної курсової роботи є:

- поглиблення знань з мови програмування Delphi (Object Pascal);

- дослідження середовища розробки програмного забезпечення Borland Delphi 7;

- реалізаціяІКП «Конструктор пазлів» в середовищі програмування Delphi7;

- створення висновку на основі вищеперерахованих аспектів;

Актуальність відповідної теми:

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

Delphi7 є найуспішнішим продуктом Borland завдяки його стабільності, швидкості і низьким вимогам до апаратного забезпечення. Побудова ІКП на основі даного середовища розробки, є одним з найцікавіших способом реалізації ООП.

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

Використання ООП дозволило впоратися з низкою проблем індустрії розробки ПЗ. Раніше багато програм створювалися "з нуля", повторне використання бібліотек підпрограм було ускладнено однозначністю записаних в них алгоритмів. Такий підхід був дорогим, багато розроблених напрацювань не могли бути застосовані в нових проектах. Методологія ООП дозволила створювати досить універсальні бібліотеки класів об'єктів, щоб їх можна було багаторазово і різними способами використовувати при вирішенні багатьох завдань. Це призвело до зниження вартості розробок, прискоренню виходу нових програмних продуктів, створення більш складних стійких програмних систем і бурхливому розвитку галузі.

Delphi 7, випущена в серпні 2002 року, стала стандартом для багатьох розробників Delphi. Це один з найуспішніших продуктів Borland через стабільність, швидкості і низьких вимог до апаратного забезпечення. В Delphi 7 додано нові компоненти для Windows XP і збільшено число компонентів для створення Web-додатків. Укупі з розвиненими засобами для написання і налагодження коду - спеціалізованим текстовим редактором, компілятором з оптимізацією і відладчиком, Delphi являє собою засіб швидкої розробки додатків. При цьому, основою Delphi для кінцевого користувача є IDE - Integrated Development Environment (Інтегроване Середовище Розробки), яка об'єднує в собі редактор коду і засоби візуальної розробки, а також пов'язує це з компілятором, засобами розробки баз даних і іншими складовими частинами Delphi.

РОЗДІЛ І. ЛОГІЧНА ГРА «ПАЗЛИ»

1.1 Історія пазлів. Актуальність

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

Пазли, придумав Джон Спілсбері в Англії в 1761 році. Торгувавши географічними картами, він винайшов новий навчальний посібник. Дж. Спілсбері став наклеювати географічні карти на основу з кедра і червоного дерева і розрізати отриману картину на безліч шматочків різної форми. Кожен з шматочків містив невелику частину географічної інформації, і збираючи по шматочках потрібні ділянки, учні вивчали географію. Надалі пазли почали використовувати для вивчення інших предметів.

У XIX столітті складні картинки набули ще більшої популярності завдяки широкому розповсюдженню в Америці штампування по картону. Ціна на пазли значно знизилася і вони стали доступні кожному. Надалі це призвело до широкої популярності пазлів у всьому світі. Потім замість чорно-білих картинок почали друкувати кольорові.Але найбільшу популярність пазли здобули в ХХ столітті. Пазли з художніми репродукціями різних картин та ілюстрацій журналів стали виготовляти в якості розваги для дорослих. Гра стала популярною розвагою в Європі.

В Америці пазли були надзвичайно популярні в часи "Сухого Закону". У великих містах навіть влаштовувалися змагання зі складання пазлів. Особливо цікавими з яких були командні змагання, коли збиралися величезні картини, що складаються з декількох тисяч деталей.

На початку XXI століття пазли продовжують завойовувати популярність тепер уже в Інтернеті. У всесвітній павутині існують безліч варіацій цієї захоплюючої головоломки з різною кількістю шматочків і різними принципами їх з'єднання. Пазли онлайн привертають увагу все більшої кількості користувачів.

У Радянському Союзі вважали, що у людей немає гострої необхідності в пазлах. І за всю його історію не було випущеного жодного радянського пазла. Єдиним каналом проникнення пазлів до Радянського Союзу були люди, які їздили у відрядження за кордон і привозили своїм дітям подарунки у вигляді пазлів.

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

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

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

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

1.2 Різновиди пазлів

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

Окрім класичних пазлів, бувають тривимірні пазли, «м'які» пазли, призначені для малих дітей, а також комп'ютерні (віртуальні) пазли.Пазли (шматочки пазлів) можуть мати різноманітну форму. Найпоширеніші (класичні) -- прямокутні (з виступами і виїмками), але також бувають пазли з трикутними, круглими, овальними елементами, а також шматочками інших форм.Також пазли можна класифікувати за правилами складання.

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

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

Абсолютно особливий вид розрізних картинок називається «куку-пазли». Складається картинка з 24 шматочків , але не варто думати, що потрібно просто прикласти одну картку до іншої і вийде готова картинка. Ці картки потрібно перевертати, складати під різними кутами, накладати кут однієї на бік іншої, нашаровувати і крутити , знаходячи подібні фрагменти. Спочатку можна постаратися зібрати чотири пазла з 6 карток, а потім постаратися дуже сильно і зробити одну велику картинку з 24 карток.

Ще одним різновидом пазлів є також кубики з картинками . Це кубики, на кожній грані яких зображений фрагмент зображення. Можна було зібрати картинку з 4, 6, 9, 12 кубиків, а потім захоплювати їх рядами і перевертати все разом, щоб знову виходила картинка.

Також існують 3D і 4D пазл, які по суті є повноцінними моделями архітектурних та інших об'єктів, які збираються кожен за своєю схемою.

Цікавим є поєднання пазлів з логічною грою п'ятнашки, де наше поле 4Ч4 представляє собою 15 частинок картинки, які рухаються по пустій клітинці , тим самим їх можна як і хаотично розмістити по полю, так і скласти в єдину картинку. Комп'ютерні (віртуальні) пазли - це різновид реалізації популярною настільної логічної гри пазли на персональному комп'ютері за допомогою різних програмних засобів.

Багато з цих комп'ютерних ігор розроблені в онлайн режимі. Реалізація пазлів за допомогою ЕОМ додає нам ряд переваг і нововведень. Наприклад можна створювати фігури,які неможливо реалізувати в реальному житті, також можна добавляти власні правила,роблячи пазли більш різноманітними і цікавими. Найбільш популярною реалізацією комп'ютерних пазлів є розбиття картинок на квадратні шматочки, розкидуючи їх по полю (2Ч2 , 4Ч4, 5Ч5, 6Ч6 і т.д.). Після цього, картинку можна зібрати міняючи місцями 2 будь-яких частинок фрагмента між собою і через певну кількість ходів отримаємо зібраний пазл.

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

РОЗДІЛ ІІ. МОВА ПРОГРАМУВННЯ DELPHI

2.1 Об'єктно-орієнтовне програмування (ООП)

Об'єктно-орієнтоване програмування (ООП) - це модель програмування яка базується на стверджені того, що програма, це сукупність об'єктів які взаємодіють між собою. Кожен об'єкт в цій моделі є незалежним, і він здатний отримувати, обробляти дані та відправляти ці дані іншим об'єктам. В ООП використано моделі успадкування, модульності, поліморфізму та інкапсуляції.

Основним поняттям ООП є об'єкт. Об'єкт можна визначити як певну сукупність даних(характеристик об'єкта) та методів роботи з ними. Для класифікації об'єктів у ООП використовують класи. Клас служить зразком для створення об'єкту, тобто об'єкт є нічим іншим, ніж копією класу.

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

Існування ООП можливе завдяки трьом основним парадигмам на яких базується саме ООП:

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

· Успадкування. Це означає, що об'єкти (класи) можуть переймати деякі властивості у своїх прабатьків.

Як? Це залежить від тієї мови, за допомогою якої створюється програма. У Delphiце призводить до повторного використання вже написаного одного разу коду. Підкласи успадковують атрибути та поведінку своїх батьківських класів, і можуть мати нові власні атрибути. Тобто утворюється ієрархія з класів, де від основного класу(так званого, предка) походять усі інші класи. Приклад такого розгалуженого "дерева" зображено на схемі 1.

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

Размещено на http://www.allbest.ru/

2.2 Історія створення Delphi( спочатку - Object Pascal)

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

Історія Delphi починається з 60-х рр., коли професор Н.Вірт розробив мову високого рівня Pascal. Це була найкраща мова для вивчення програмування, і створення програм для ОС MS-DOS. Ніклаус Вірт розробив дану мову, щоб навчати правильного створення програм. Це перша мова програмування, яка підтримує ідею Дейкстри про структурне програмування. Мова Паскаль спочатку є процедурною мовою, процедурність дозволяє застосовувати концепцію структурного програмування.Щоб виконати програму на мові Паскаль в "давні часи" треба було спочатку підготувати текст програми за допомогою будь-якого текстового редактора, потім підготувати засобами MS DOS в командному рядку команду, для того щоб запустити компілятор з мови Паскаль і передати йому файл з текстом програми (приблизно, так: C: \ Pascal \ Prog.txt), після цього компілятор перевіряє програму і зазначає синтаксичні помилки.

А ще раніше, перший Паскаль не мав можливості для реалізаціїствореного (exe) файлу, і для його створення використовували компілятор Ассемблера, тобто програму, сторену мовою Паскаль компілятор перетворював у код мови Асемблера, а вже після цього компілятор Асемблера створював машинний код програми.

1983 р, А. Хейлсберг спільно з іншими програмістами, які тільки-но організували компанію Borland, розробив компілятор TurboPascal, який став наступним кроком в еволюції Delphi. Потім з'явився ObjectPascal, який вже використав об'єктно-орієнтований підхід до програмування.Починаючи з середовища розробки Delphi 7.0, в офіційних документах Borland почали використовувати назву Delphi для позначення мови Object Pascal.Коли з'явилася перша версія Windows - Windows 3.10, Програмісти Borland створили Delphi 1. Це вже було об'єктно-орієнтоване середовище для візуальної розробки програм, заснована на мові ObjectPascal.

ОсновуDelphiстановитьнетількисамамова, айRAD (RapidApplicationDevelopment) - середовищешвидкоїрозробкипрограм. Завдяки візуальному програмуванню, а також досить великій бібліотеці візуальних компонентів, Delphi дозволяє створювати програми найбільш швидко і ефективно, приймаючи на себе основну роботу, і залишаючи програмісту творчий процес. Зрозуміло, можливість швидкого створення професійних додатків для Windows робить Delphi - програмістів затребуванимиу всіх галузях людської діяльності.

2.3 Інтегроване середовище розробки Delphi

Зовнішній вигляд середовища програмування Delphi відрізняється від тих, що можна побачити в Windows. Наприклад, Borland Pascal for Windows 7.0, Borland C++, Word for Windows, Program Manager - це все MDI застосування. MDI (Multiple Document Interface) - визначає особливий спосіб управління декількох дочірніх вікон усередині одного великого вікна.

Середовище Delphi жслідує іншій специфікації, так званій Single Document Interface (SDI), і складається з декількох окремо розташованих вікон.

Основні складові частини середовища програмування Delphi:

Ш Дизайнер Форм (Form Designer)

Ш Вікно Редактора Початкового Тексту (Editor Window)

Ш ПалітраІнгредієнтів(Component Palette)

Ш Інспектор Об'єктів (Object Inspector)

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

Робота над новим проектом, що розробляється, починається із створення стартової форми.(Мал.1)

Мал.1

Стартова форма створюється шляхом зміни значень властивостей стандартної форми Form1 і додавання до форми необхідних компонентів (полів введення і виведення тексту, командних кнопок тощо). Властивості форми визначають її зовнішній вигляд: розмір, положення на екрані, текст заголовка, вид рамки. Для перегляду і зміни значень властивостей форми і її компонентів використовується вікно ObjectInspector.

У верхній частині вікна ObjectInspector вказано ім'я об'єкту, значення властивостей якого відображається в даний момент. У лівій колонці вкладки Properties (Властивості) перераховані властивості об'єкту, а в правій -- вказані їх значення. (Табл.1)(Мал.2)

Властивість

Опис

Name

Ім'я форми. В програмі ім'я форми використовується для управління формою і доступу до компонентів форми

Caption

Текст заголовка

Width

Ширина форми

Height

Висота форми

Top

Відстань від верхньої межі форми до верхньої межі екрану

Left

Відстань від лівої межі форми до лівої межі екрану

BorderStyle

Вид межі. Межа може бути звичайною (bsSizeable), тонкою (bsSingle) або бути відсутньою (bsNone).

BorderIcons

Кнопки управління вікном. Значення властивості визначає, які кнопки управління вікном будуть доступні користувачеві під час роботи програми.

Icon

Значок в заголовку діалогового вікна, що позначає кнопку виведення системного меню.

Color

Колір фону.

Font

Шрифт.Використовуваний «за замовчуванням» компонентами, що знаходяться на форми.

Мал.2

Палітра Інгредієнтів(Мал.3) дозволяєвибрати потрібні об'єкти для розміщення їх на Дизайнері Форм. Для використання Палітри Компонент просто перший раз натисніть мишкою на один з об'єктів і потім другий раз - на Дизайнері Форм. Вибраний Вами об'єкт з'явиться на проектованому вікні і їм можна маніпулювати за допомогою миші.

Мал.3

РОЗДІЛ ІІІ. РОЗРОБКА ІГРОВОЇ КОМП'ЮТЕРНОЇ ПРОГРАМИ У СЕРЕДОВИЩІ DELPHI7

3.1 Загальний огляд компонентів та інтерфейсуІКП

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

ІКП «Конструктор пазлів»створена за допомогою компонентів BorlandDelphi7.

Головною задачею єстворення ІКП «Конструктор пазлів», яка б включала в себе ігрову панель, що складається зі 16 шматочків розрізаної картинки, розташовані одна біля одної по полю 4Ч4. Особливістю даної ІКП є можливість автоматичного розбиття вибраної гравцем картинки на 16 окремих «пазлів», і автоматичне змішування цих фрагментів. Гравцю потрібно за допомогою миші переміщати ці частинки так, щоб в результаті отримати оригінальну картинку.

Як тільки всі фрагменти картинки буде розміщено правильно, то це означає, що гравець впорався із завданням, а тому він може за власним вибором завершити гру, або ж продовжити, обравши нову картинку.(Мал.4)(Мал.5).

(Мал.4)

(Мал.5)

Щоправда, на ІКП установлене обмеження: розмір картинки має дорівнювати 344 пікселям у ширину і 324 у висоту. Це потрібно для того, щоб для розташування пазлів було зручним для гравця: всі шматочки видно, зручне натискання на кожен пазл, видимість оригінальної картинки з правого боку.

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

Мал.6

За допомогою розділу «Додати картинку», ви можете вибрати нову картинку з представлених у папці «Пазл», або ж вибрати будь-яке зображення з власного комп'ютера, обов'язково звернувши увагу на підказку, яка з'являється при натисненні даного компоненту (щодо розміру фото)(Мал.7, Мал.8);

Мал.7

Мал.8

Розділ «Довідка» включає в себе опис інтерфейсу ІКП «Конструктор пазлів» та інформацію щодо власника(мал.9);

Мал.9

Компонент «Правила гри», являє собою опис найголовніших правил користування ІКП «Конструктор пазлів(Мал.10);

Мал.10

«Вихід» дає змогу зупинити роботу ІКП «Конструктор пазлів»(Мал.11).

Мал.11

3.2 Правила ІКП «Конструктор пазлів»

За основу було взято пазли у вигляді розрізаної картинки на квадрати, які розміщені на полі 4Ч4 , де головним правилом є переміщення між 2-ма будь-якими елементами картинки, при цьому один фрагмент ставав на місце іншого і навпаки.

Основні правила створеної ІКП «Конструктор пазлів»:

1) Для складання пазлу потрібно обрати зображення розміром 344х324;

2) Скласти картинку можна міняючи місцями лише 2! її елемента;

3) За допомогою правої кнопки миші обираємо перший пазл, після чого знову за допомогою ПКМ обираємо другий пазл;

4) Якщо при виконанні даного пункту ви не допустили жодної помилки, то пазл №1 замінить пазл №2, і навпаки;

5) Виконуючи пункт 2 послідовно n-кількість разів, ви зможете скласти пазл правильно, звіряючи його з оригіналом, який представлено з правого боку від пазлу;

6) Якщо пазли буде переміщено правильно, програма сповістить вас про завершення гри, і надасть вам можливість або ж вийти з гри, або ж продовжити далі.

3.3 Об'єктне програмування. Опис класу та процедур

В ІКМ «Конструктор пазлів» класс TForm1 ,з описом усіх його компонентів .

type

TForm1 = class(TForm)

mm1: TMainMenu; - головне меню програми;

N2: TMenuItem; - підпункт головного меню «Додати зображення»;

dlgOpenPic1: TOpenPictureDialog; - атрибут для відкриття зображення;

N1: TMenuItem; - підпункт головного меню «Правила гри»

N3: TMenuItem;- підпункт головного меню «Довідка»;

img1: TImage; - кнопка для відкриття зображення 1;

img2: TImage; - кнопка для відкриття зображення 2;

img3: TImage; - кнопка для відкриття зображення 3;

img4: TImage; - кнопка для відкриття зображення 4;

procedure FormCreate(Sender: TObject); - створення форми;

procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer); - координати миші;

procedure FormPaint(Sender: TObject); - обробка події OnPaint;

procedure N2Click(Sender: TObject);

procedure img1Click(Sender: TObject);

procedure img2Click(Sender: TObject);

procedure img3Click(Sender: TObject); Процедури,вставлені procedure img4Click(Sender: TObject); в клас вручну

procedure N1Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure ShowPole; - процедура для виведення ігрового поля.Дана процедура перетворює кожен номер клітинки в відповідні координати картинки;

procedure Mixer; - процедура для перемішування клітинок.Дана процедура працює як і програма , вона перемішує всі клітинки з головною , в кінці надає головній клітинці координати (4, 4);

procedure NewGame; - процедура для початку нової гри.Дана процедура завантажує початкову картинку і розбиває її на нашій формі.

procedure NewGame1; - процедура для відкриття інших трьох стандартних картинок;

procedure Open; - процедура для відкриття власного зображення, не стандартизований у програмі ;

ВИСНОВКИ

Результатом курсової роботи стало освоєння та застосування практичних навичок в області ООП та візуального програмування. Також набуто уміння роботи в середовищі візуального програмування Borland Delphi 7 та Borland Delphi 10.

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

Беручи до уваги всі вищенаведені аспекти було створено ІКП «Конструктор пазлів», розраховуючи на зацікавленість користувачів, серед яких можуть бути люди від 12+.

СПИСОК ВИКОРИСТАНИХ ДЖРЕЛ

1) З.П.Дарахвелидзе, Е.Марков. Delphi -- среда визуального программирования. СПб: BHV-Санкт-Петербург, 1996г., 44 с.;

2) Рубанцев Валерий, Delphi в примерах, играх и программах. Я + R, 2011г., 482 с.;

3) Сергей Бобровский, Технологии Delphi 2006 Новые возможности, Питер, 2006 г. , 288 с.;

4) А. Б. Григорьев, О чем не пишут в книгах по Delphi, БХВ-Петербург, 2008 г.,576 с.;

5) http://programming.in.ua

6) http://pazlov.net

ДОДАТОК

unit soberi_;

interface

uses

Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls, ExtDlgs;

type

TForm1 = class(TForm)

mm1: TMainMenu;

N2: TMenuItem;

dlgOpenPic1: TOpenPictureDialog;

N1: TMenuItem;

N3: TMenuItem;

img1: TImage;

img2: TImage;

img3: TImage;

img4: TImage;

N4: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormPaint(Sender: TObject);

procedure ShowPole;

procedure Mixer;

procedure NewGame;

procedure NewGame1;

procedure Open;

procedure N2Click(Sender: TObject);

procedure img1Click(Sender: TObject);

procedure img2Click(Sender: TObject);

procedure img3Click(Sender: TObject);

procedure img4Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

const

H = 4; W = 4;

var

clic: Boolean;

wc,hc: integer;

pole: array[1..H, 1..W] of byte;

ex,ey,cx2,cy2,cx1,cy1: integer;

stp : array[1..H, 1..W] of byte =

(( 1, 2, 3, 4),

( 5, 6, 7, 8),

( 9,10,11,12),

(13,14,15, 16));

pic: TBitmap;

procedure TForm1.NewGame;

var

fname: string[20];

i,j: integer;

begin

fname := 'pic_1.bmp';

try

pic.LoadFromFile(fname);

except

on EFopenError do

begin

ShowMessage('помилка звернення до файлу ' + fname);

Form1.Close;

end;

end;

hc := Pic.Height div H;

wc := Pic.Width div W;

ClientWidth := wc * W + 400;

ClientHeight := hc * H;

for i:=1 to H do

for j:=1 to W do

pole[i,j] := stp[i,j];

Form1.Mixer;

Form1.ShowPole;

end;

procedure TForm1.NewGame1;

var

fname: string[20];

i,j: integer;

begin

hc := Pic.Height div H;

wc := Pic.Width div W;

ClientWidth := wc * W + 400;

ClientHeight := hc * H;

for i:=1 to H do

for j:=1 to W do

pole[i,j] := stp[i,j];

Form1.Mixer; // перемішати картинку

Form1.ShowPole;

end;

function Finish: boolean;

var

row,col: integer;

i: integer;

begin

row :=1; col :=1;

Finish := True;

for i:=1 to 16 do

begin

if pole[row,col] <> i then

begin

Finish:= False;

break;

end;

if col < 4

then inc(col)

else begin

col :=1;

inc(row);

end;

end;

end;

procedure Move(cx2,cy2: integer);

var

r: integer;

begin

r:= Pole[cy2,cx2];

Pole[cy2,cx2] := Pole[cy1,cx1];

Pole[cy1,cx1] := r;

Form1.ShowPole;

if Finish then

begin

pole[4,4] := 16;

Form1.ShowPole;

r := MessageDlg('Пазл складений'+ #13+

'Нова гра?',mtInformation,[mbYes,mbNo],0);

if r = mrNo then Form1.Close;

Form1.NewGame;

end;

end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

if clic = False then

begin

cx1 := Trunc(X / wc) + 1;

cy1 := Trunc(Y / hc) + 1;

clic:= True;

end

else

begin

cx2 := Trunc(X / wc) + 1;

cy2 := Trunc(Y / hc) + 1;

Move(cx2,cy2);

clic := False;

end;

end;

procedure TForm1.ShowPole;

var

Source, Dest: Trect;

sx,sy: integer;

i,j: integer;

begin

for i := 1 to W do

for j := 1 to H do

begin

sy := ((pole[i,j] -1 ) div W) * hc;

sx := ((pole[i,j] -1 ) mod W) * wc;

Source := Bounds(sx,sy,wc,hc);

Dest := Bounds((j-1)*wc,(i-1)*hc,wc,hc);

if pole[i,j] <> 0

then Canvas.CopyRect(Dest,pic.Canvas,Source)

else Canvas.Rectangle((j-1)*wc,(i-1)*hc,j*wc,i*hc);

end;

end;

procedure TForm1.Mixer;

var

x1,y1: integer;

x2,y2: integer;

d: integer;

i: integer;

begin

x1:=4; y1:=4;

randomize;

for i:= 1 to 160 do

begin

repeat

x2:=x1;

y2:=y1;

d:=random(4)+1;

case d of

1: dec(x2);

2: inc(x2);

3: dec(y2);

4: inc(y2);

end;

until (x2>=1) and (x2<=4) and (y2>=1) and (y2<=4);

Pole[y1,x1] := Pole[y2,x2];

Pole[y2,x2] := 16;

x1:=x2;

y1:=y2;

end;

ex:= 4;

ey:= 4;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

pic := TBitMap.Create;

NewGame;

end;

procedure TForm1.FormPaint(Sender: TObject);

begin

Form1.ShowPole;

end;

procedure TForm1.Open;

var

fname: string[20];

i,j,r: integer;

begin

r := MessageDlg(Ширина картинки має дорівнювати 344 пікселям,а висота має дорівнювати 324 пікселям.',mtInformation,[mbOK],0);

if dlgOpenPic1.Execute then

pic.LoadFromFile(dlgOpenPic1.FileName); hc := Pic.Height div H;

wc := Pic.Width div W;

ClientWidth := wc * W + 400;

ClientHeight := hc * H;

if (ClientWidth > 344) and (ClientHeight < 320) then

begin

r := MessageDlg('Картинка не підходить',mtInformation,[mbOK],0);

Form1.Open;;

end;

for i:=1 to H do

for j:=1 to W do

pole[i,j] := stp[i,j];

Form1.Mixer;

Form1.ShowPole;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

Form1.Open;

end;

procedure TForm1.img1Click(Sender: TObject);

var

fname: string[20];

i,j: integer;

begin

fname := 'pic_1.bmp';

try

pic.LoadFromFile(fname);

except

on EFopenError do

begin

ShowMessage('Помилка звернення до файлу ' + fname);

Form1.Close;

end;

end;

hc := Pic.Height div H;

wc := Pic.Width div W;

ClientWidth := wc * W + 400;

ClientHeight := hc * H;

for i:=1 to H do

for j:=1 to W do

pole[i,j] := stp[i,j];

Form1.Mixer;

Form1.ShowPole;

end;

procedure TForm1.img2Click(Sender: TObject);

var

fname: string[20];

i,j: integer;

begin

fname := 'pic_2.bmp';

try

pic.LoadFromFile(fname);

except

on EFopenError do

begin

ShowMessage('Помилка звернення до файлу ' + fname);

Form1.Close;

end;

end;

Form1.NewGame1;

end;

procedure TForm1.img3Click(Sender: TObject);

var

fname: string[20];

i,j: integer;

begin

fname := 'pic_3.bmp';

try

pic.LoadFromFile(fname);

except

on EFopenError do

begin

ShowMessage('Помилка звернення до файлу ' + fname);

Form1.Close;

end;

end;

Form1.NewGame1;

end;

procedure TForm1.img4Click(Sender: TObject);

var

fname: string[20];

i,j: integer;

begin

fname := 'pic_4.bmp';

try

pic.LoadFromFile(fname);

except

on EFopenError do

begin

ShowMessage('Помилка звернення до файлу ' + fname);

Form1.Close;

end;

end;

Form1.NewGame1;

end;

procedure TForm1.N1Click(Sender: TObject);

begin

MessageDlg('Ігрова комп"ютерна програма "Конструктор пазлів".'+ #13+

'' + #13+

'Правила:'+ #13+

'' + #13+

'1)Скласти картинку можна міняючи місцями лише два! її елемента;'+ #13+

'' + #13+

'2)За допомогою правої кнопки миші обираємо перший пазл, після чого знову за допомогою ПКМ обираємо другий пазл;'+ #13+

'' + #13+

'3)Якщо при виконанні даного пункту ви не допустили жодної помилки, то пазл №1 замінить пазл №2, і навпаки;'+ #13+

'' + #13+

'4)Виконуючи пункт 2 послідовно n-кількість разів, ви зможете скласти пазл правильно, звіряючи його з оригіналом, який представлено з правого боку від пазлу;'+ #13+

'' + #13+

'5)Якщо пазли буде переміщено правильно, програма сповістить вас про завершення гри, і надасть вам можливість або ж вийти з гри, або ж продовжити далі',mtInformation,[mbOK],0);

end;

procedure TForm1.N3Click(Sender: TObject);

begin

MessageDlg(

'"Додати фото" - дозволяє відкрити файл 344*324.'+ #13+

'"Правила гри" - опис основних правил гри.'+ #13+

'"Вихід" - дозволяє зупинити ІКП "Конструкторр пазлів"'+ #13+

''+ #13+

''+ #13+

'РЕКОМЕНДОВАНИЙ ВІК КОРИСТУВАЧА 12+'+ #13+

''+ #13+

'Виконав студент 31 ІА групи Яценко Олег',mtInformation,[mbOK],0);

end;

procedure TForm1.N4Click(Sender: TObject);

begin

Form1.Close;

end;

end.

Размещено на Allbest.ru

...

Подобные документы

  • Історія розвитку Delphi (Object Pascal). Інтегроване середовище розробки Delphi. Ознайомлення з історією створення і використання логічної гри "Пазли". Реалізування ігрової комп’ютерної програми "Конструктор пазлів" в середовищі програмування Delphi 7.

    курсовая работа [2,2 M], добавлен 10.11.2015

  • Прототип об'єктно-орієнтованого програмування. Управління процесом реалізації програми. Розвиток апаратних засобів. Об'єктно-орієнтовані мови програмування. Надійність і експлуатаційні якості програм. Візуальне об’єктна-орієнтовне проектування Delphi.

    контрольная работа [28,9 K], добавлен 18.05.2009

  • Огляд середовища програмування Delphi виробництва корпорації Inprise. Засоби масштабування для побудови баз даних. Візуальна побудова додатків із програмних прототипів. Об’єктно-орієнтована модель компонентів. Опис структури програми, компонентів OpenGL.

    курсовая работа [1,9 M], добавлен 09.06.2010

  • Основні аспекти використання стандартних компонентів ООС програмування Delphi для створення звітної документації. Опис компонентів – QReport, PrintDialog та PrintSetupDialog. Приклади створення звітів. Iнше програмне забезпечення для побудови звітів.

    курсовая работа [488,4 K], добавлен 08.12.2008

  • Середовище розробки програм Borland Delphi, робота компонентів. Створення нових компонентів та використання компонентів Delphi для роботи з базами даних. Системи керування базами даних InterBase та Firebird. Компоненти Delphi для роботи з СКБД FireBird.

    реферат [71,4 K], добавлен 12.04.2010

  • Використання комп'ютерних технологій та програмного забезпечення. Загальні відомості про середовище візуального програмування Delphi 7. Аналітичний огляд програм, які вирішують задачі методом Крамера або методом Гауса. Розробка програми "Лічильник задач".

    курсовая работа [2,7 M], добавлен 10.04.2014

  • Розроблення додатка за допомогою об'єктно-орієнтованого візуального проектування Delphi для виконання арифметичних операцій або з використанням меню. Створення інтерфейсу користувача з використанням компонентів SYSTEM і WIN32. Обробка двовимірного масиву.

    методичка [326,1 K], добавлен 13.01.2010

  • Головні принципи візуального програмування, опис компонентів Delphi, використаних при розробці проекту. Опис програми-додатку "Психологічний тест" та список дій користувача. Алгоритм роботи програми, її форма та ієрархія. Опис графічного інтерфейсу.

    курсовая работа [1,2 M], добавлен 08.06.2010

  • Основні відомості про історію розвитку мови Object Pascal, середовища Delphi, їх основні технології та застосування для роботи з файлами. Опис основних особливостей мови, основних елементів програмної мови. Принципи об'єктно-орієнтованого програмування.

    курсовая работа [471,5 K], добавлен 12.04.2010

  • Поняття про програму "Файловий менеджер". Середовище розробки, програмування в Delphi. Програма та методика тестування, інструкція користувача. Послідовність запуску програми, загальний вигляд лістингу, перенесення файлів. Блок-схема та UML-діаграма.

    курсовая работа [1,3 M], добавлен 19.11.2013

  • Вибір мови програмування, історія Delphi. Граф як множина точок та способи їх з’єднання. Типи матриць, за допомогою яких детально описується орієнтований граф. Дескриптори, користування API функціями. Історія головоломки про Кенігсберзькі мости.

    курсовая работа [2,0 M], добавлен 14.09.2012

  • Розробка програми на мові програмування С++ з використанням об’єктно-орієнтованого програмування, яка включає в себе роботу з файлами, класами, обробку числової інформації і роботу з графікою. Структура класів і об’єктів. Лістинг та алгоритм програми.

    курсовая работа [104,4 K], добавлен 14.03.2013

  • Прості та умовні оператори мови С++. Робота з двовимірними масивами. Пошук та сортування даних. Робота з файлами та з динамічними структурами даних. Опис мови програмування Delphi. Складення програми до розроблених алгоритмів. Організація циклів.

    отчет по практике [4,3 M], добавлен 28.08.2014

  • Характеристика технології візуального проектування і програмування, суть якої полягає в тому, що область розробки бере на себе більшу частину рутинної роботи. Огляд середовища швидкої розробки, в якій як мова програмування використовується мова Delphi.

    курсовая работа [2,8 M], добавлен 27.02.2012

  • Дослідження середовища візуального програмування Delphi. Вивчення процесу створення навчальної програми "Електронний словник". Опис графічного інтерфейсу. Характеристика структури та основних процедур даної програми. Аналіз роботи з програмним кодом.

    курсовая работа [831,2 K], добавлен 01.03.2014

  • Принципи технології створення програмних продуктів. Набір файлів, необхідних для створення програми в Delphi, варіанти роботи з ними. Програмування графічного інтерфейсу користувача. Зовнішній вигляд і лістинг програми, використані команди і компоненти.

    курсовая работа [550,5 K], добавлен 03.01.2014

  • Концепції об'єктно-орієнтованого програмування. Спеціалізовані засоби розробки програмного забезпечення мовою Delphi. Загальні питання побудови та використання сучасних систем об’єктно-орієнтованного та візуального проектування програмних засобів.

    курсовая работа [201,4 K], добавлен 01.04.2016

  • Поняття об’єктно-орієнтовного програмування, поява відносин класів. Структури як складені типи даних, побудовані з використанням інших типів. Область дії класу і доступ до його елементів. Конструктор та деструктор класу. Розробка базового класу STRING.

    курсовая работа [280,9 K], добавлен 19.08.2010

  • Об’єктно-орієнтоване програмування мовою С++. Основні принципи об’єктно-орієнтованого програмування. Розробка класів з використанням технології візуального програмування. Розробка класу classProgressBar. Базовий клас font. Методи тестування програми.

    курсовая работа [211,3 K], добавлен 19.08.2010

  • Постановка задачі: створення списку співробітників інституту. Аналіз мов програмування та вибір мови PascalABC.Net - 32-розрядної програми, яка може працювати на сучасних версіях Windows. Опис функцій та процедур, реалізації інтерфейсу користувача.

    курсовая работа [277,8 K], добавлен 25.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.