Інтелектуальна гра "Гаряче крісло"

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

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

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

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

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

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

Зміст

Вступ

1. Аналітичний розділ

2. Побудова інформаційно-математичної моделі задачі

3. Алгоритм задачі

4. Визначення структури даних

5. Розробка інтерфейсу програми з користувачем

6. Складання коду програми

7. Реалізація проекту у візуальному середовищі

8. Аналіз програми

9. Тестування програми

10. Інструкція з експлуатації програми

11. Аналіз отриманих результатів

Висновок

Література

Додаток А

програма інтелектуальна гра

Вступ

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

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

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

Саме разом з Delphi ви відчуєте себе впевненими у програмуванні для Windows. Названа як система швидкої розробки додатків, або ж RAD, Delphi є генератором ефективного коду, конструктором візуальних додатків і інструментом для баз даних, який є легким в опануванні і водночас потужнім у використанні.

Для опанування Delphi зовсім не потрібно бути фахівцем в галузі computer science, та якщо ви знаєте Pascal, C, C++, або Visual Basic, це вам стане в нагоді.

Технологія роботи у середовищі Delphi базується на ідеях об'єктно-орієнтованого та візуального програмування. Ідея об'єктно-орієнтованого програмування полягає в інкапсуляції (об'єднанні) даних і засобів їх опрацювання (методів) у тип, який називається класом. Конкретною змінною певного класу і є об'єкт. Прикладами об'єктів можуть бути елементи керування у вік-ні: кнопки, списки, текстові поля тощо. Середовище візуального програмування Delphi - це графічна автоматизована оболонка над об'єктно-орієнтованою версією мови Паскаль (Object Pascal). Якщо у мові Паскаль структурними одиницями є дані та команди, то тут такою структурною одиницею є візуальний об'єкт, який нази-ваєть-ся компонентом. Автоматизація програмування досягається завдяки мож-ливості переносити компонент на форму (у програму) з палітри ком-понентів і змінювати його властивості, не вносячи вручну змін до програмного коду.

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

1. Аналітичний розділ

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

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

Завданням даного дипломного проекту є розробити гру ”Гаряче крісло”. Суть цієї гри полягає у тому, що є три гравця, один - ведучий, його роль полягає у тому, що він має донести до іншого гравця питання, яке випало, та чотири варіанти відповіді до відповідного питання.

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

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

Реалізація даного дипломного проекту буде відбуватися у середовищі програмування Delphі, і використовуватимуться стандартні компоненти середовища для створення зручного і зрозумілого інтерфейсу гри.

2. Побудова інформаційно-математичної моделі задачі

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

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

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

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

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

3. Алгоритм задачі

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

Кожному алгоритму властиві такі властивості: результативність, визначеність, масовість.

Базові структури алгоритмів зображуються у вигляді блок-схеми.

Блок-схема - зображення алгоритму при допомозі геометричних фігур (блоків), кожна з яких виконує певну дію.

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

лінійний - операції виконуються послідовно, по черзі їх запису;

розгалужений - в цьому разі існує умова залежно від виконання якої є кілька напрямків обчислень.

циклічний - процес з одним або більше блоками, що повторюються.

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

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

Рисунок 2 - Блок-схема алгоритму зберігання даних у файл

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

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

Рисунок 3 - Алгоритм перевірка вибору питань.

4. Визначення структури даних

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

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

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

Для створення даного проекту було створено власний тип типу запис, який містить атрибути мішеней і має наступну структуру:

rec=record

num:integer;

ask:string[255];

p1, p2, p3,

good:string[90];

end;

Якщо ж детально розібрати даний запис, то буде визначено, що num - номер питання по порядку, ask - зміст запитання, p1, p2, p3, good - відповідно три хибні варіанти відповідей та одна істина.

Опишемо призначення змінних розроблюваної програми так як зображено в таблиці1:

Таблиця 1 - Перелік і призначення змінних модуля UnіТ3

Назва змінної

Тип змінної

Призначення

ar

Масив типу rec

Масив що зберігає у собі усі прочитані запитання із файлу

an

Масив типу Byte

Масив що зберігає у собі позначення на те чи вибиралось питання

f

File of rec

Файлова зміна для зчитування даних із файлу

Level

Byte

Зберігає значення кількості набраних балів, рівень

Nr, nn

Integer

Зберігають поточні елементи у масивах

5. Розробка інтерфейсу програми з користувачем

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

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

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

Під час створення головної форми гри були використані наступні компоненти:

Image1: TImage - фонове зображення;

Image2..5: TImage - призначені для відображення у грі поля відповідних варіантів відповідей;

Panel1..3: TPanel - для компонування даних на формі;

Label1..8: TLabel - для виведення певної інформації на екран для користувача, а саме текст варіантів відповідей ;

Image6,7: TImage - для відображення на панелях заднього фону, що дещо відрізняється від фонового зображення форми.

Image8: TImage - для відображення не заповненої шкали гри, тобто картинка не буде заповнена кольорами;

Image9: TImage - для відображення заповненої шкали гри та так само як Image8 буде розташована на Panel1;

Рисунок 3 - Вигляд форми програми на етапі проектування

6. Складання коду програми

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

Код програми пишеться на конкретній мові програмування. Так як даний проект написаний у візуальному середовищі Delphi 7.0, то мова, яка використовується для написання цієї програми - це Object Pascal.

Нижче приведені назви основних функцій та процедур, що будуть реалізовані в даному проекті:

procedure FormActivate(Sender: TObject); - виконання ряд дій, які відповідно виконаються при завантажені форми;

procedure Image1Click(Sender: TObject) - призначення цієї події, обробка першого варіанту відповіді;

procedure Image3Click(Sender: TObject) - призначення цієї події, обробка другого варіанту відповіді;

procedure Image2Click(Sender: TObject) - призначення цієї події, обробка третього варіанту відповіді;

procedure Image4Click(Sender: TObject) - призначення цієї події, обробка четвертого варіанту відповіді;

procedure Panel3Click(Sender: TObject) - при виборі підказки 50 на 50;

procedure clean - очищає усі необхідні параметри гри, для того щоб можна було розпочати гру заново;

procedure LoadarrRND - в даній процедурі відбувається випадковий вибір запитання із тих що було прочитано із файлу та перевірка на те, щоб питання могло випасти лише один раз;

procedure LoadFileN(n:byte) - призначення даної процедури полягає у зчитуванні даних із типованого файлу і запису в масив для подальшої роботи;

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

procedure Choose(n:byte) - перевірка на те, чи гравець вибрав вірну відповідь на конкретне запитання;

procedure Lose - процедура, яка виконується у разі невірного вибору відповіді, тобто коли гравець програє гру;

procedure FiftyFifty - призначення цієї процедури полягає у тому, щоб із чотирьох варіантів відповідей забрати два не вірних варіанта;

procedure select(img:Timage; n:byte) - для зміни зображення заднього фону вибраного варіанту відповіді;

Повний код програми наведено в додатку А до пояснювальної записки

7. Реалізація проекту у візуальному середовищі

Для реалізації даного проекту було обрано середовище візуального програмування Borland Delphi 7.0, яке є простішим середовищем для розробки прикладного програмного забезпечення.

Для власне реалізації проекту потрібно виконати наступні дії:

запустити на виконання оболонку Delphi;

задати формі відповідне ім'я та заголовок (змінити властивості Name та Caption форми);

на формі розмістити потрібні компоненти та задати відповідні значення їхнім властивостям;

відкомпілювати проект за допомогою клавіші F9.

Форма одразу після розміщення на ній компонентів набуде такого вигляду як вказано в розділі „Розробка інтерфейсу програми з користувачем”

Далі змінимо деякі властивості компонентів, наступним чином: у відповідні компоненти відображення графічних зображень завантажимо необхідні картинки, для цього скористувавшись властивістю Picture. Також зображення потрібно розтягнути на усю поверхність(форми, панелі), для чого необхідно скористуватись наступними властивостями компоненти Image:

Align поставте в положення - alClient;

Stretch поставте в положення - True;

Proportional поставте в положення - True;

Також в проекті використаємо компоненту XPManifest1, яка надасть програмі дещо вишуканішого стилю.

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

Рисунок 4 - зображення головної форми гри після зміни властивостей

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

8. Аналіз програми

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

Розроблена програма є самостійним продуктом і запускається з операційної системи сімейства Windows.

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

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

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

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

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

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

9. Тестування програми

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

Існують різні види тестування програм. Аварійні тести використовуються для перевірки реакції програми на виникнення ситуацій, пов'язаних з хибними даними, що надходять на обробку. Комплексні тести перевіряють правильність роботи усіх модулів програми після їх об'єднання.

З проблемами тестування тісно пов'язані питання складання програмного виробу, до складу якого входить багато окремих компонентів. Насамперед це стосується проблем структурного тестування. Найкращі результати, як свідчать статистичні дані, дає застосування низхідного методу тестування: вводимо вхідні дані, отримуємо результат та аналізуємо його. Наприклад, вводимо назву виробу, норму витрат та кількість виробів - і перевіряємо обчислену потребу матеріалу.

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

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

10. Інструкція з експлуатації програми

Для стабільної роботи програмного продукту комп'ютер повинен відповідати таким характеристикам:

процесор з тактовою частотою 1 ГГц;

256 Мб оперативної пам'яті;

10 Мб вільного дискового простору на жорсткому диску;

відеоадаптер, який підтримує кольоровий режим роботи 64 Мб;

монітор, який може працювати з роздільною здатністю 1024х768;

маніпулятор „миша”;

CD-ROM (для встановлення програми);

операційна система сімейства Windows.

Для того щоб розпочати гру «Гаряче крісло», на сам перед потрібно скопіювати на комп'ютер папку із грою, пересвідчитись у тому що комп'ютер має необхідну конфігурацію та запустити виконуваний файл Otlichnik.exe.

Після запуску гри перед користувачем появиться початкове вікно(рис. 5), в якому буде представлений користувачу вибір режиму програми, а саме: розпочати нову гру, перейти до редагування запитань та можливість переглянути результати попередніх гравців, які грали у дану гру.

Ну спершу відредагуємо базу запитань для гри, щоб можна було розпочати нову гру, для цього виберемо «Редактор питань». Перед користувачем появиться вікно наступного змісту(рисунок 6): з верху вікна розташовані перемикачі для того, щоб вибрати рівень складності запитання, адже чим довше гравець грає тим складніші запитання йому задаються. Трохи нижче знаходиться текстове поле у яке потрібно ввести запитання. Відповідно нижче знаходяться, ще чотири текстових поля для того щоб ввести варіанти відповіді.

Після того як усі поля заповнені, потрібно натиснути кнопку «Додати питання».

Рисунок 5 - Вікно вибору режиму програми

Повернемось назад на початкове вікно, та створимо нову гру натиснувши на відповідний напис «Нова гра».

Рисунок 6 - Редактор питань для гри.

Після створення нової гри, користувач на моніторі побачить вікно з наступним змістом:

Рисунок 7 - Головне вікно гри.

По середині екрану виводиться текст запитання, на яке гравець повинен дати вірну відповідь. Варіанти відповідей розташовані трішки нижче запитання та позначенні літерами (А, Б, В, Г).

Після вибору користувачем варіанту відповіді програма перевірить на правильність вибрану відповідь та відповідно відобразить поточний результат( рисунок 8), та при вірній відповіді виведеться наступне питання, а у протилежному разі гра закінчиться.

Рисунок 8 - Вивід результату гри

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

Рисунок 9 - Перегляд попередніх результатів гри.

11. Аналіз отриманих результатів

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

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

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

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

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

Висновок

Для розробки даної програми було необхідно продумати та пояснити кожний крок розробки програми. Для програмування використовувалась мова високого рівня Delphi.

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

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

Були складені вимоги до комп'ютера для коректного перебігу програми та написана інструкція по експлуатації програми.

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

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

Література

Глинський Я.М., Анохін В.Є., Ряжська В.А. Turbo Pascal і Delphi. Практикум. - Львів, 2011.

Залогова Л. Информатика. Практикум по компьютерной графике. - М.: Лаборатория базовых знаний. - 2009. - 320 с.

Мойсеєнко І.М. Фізика. Контрольні тести. Опорні конспекти. 9 клас. / Мойсеєнко І.М., Мойсеєнко В.І. - Кам'янець-Подільський: ФОП Сисин О.В., 2009. - 140 с.

Немнюгин С.А. Turbo Pascal - СПб.: „Питер”, 2010. - 496 с.

Пушкар О.І. Інформатика і комп'ютерна техніка. Комп'ютерна технологія. Київ. Видавничий центр „Академія” 2003.

Физика: Большой справочник для школьников и поступающих в вузы / Ю.И.Дик, В.А.Ильин, Д.А.Исаев и др. - 2-е изд. - М.: Дрофа, 2009. - 688 с.: ил. - (Большие справочники для школьников и поступающих в вузы).

Додаток А - Вихідні тексти програми

program Otlichnik;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2},

Unit3 in 'Unit3.pas' {Form3},

Unit4 in 'Unit4.pas' {Form4},

Unit5 in 'Unit5.pas' {Form5},

Unit6 in 'Unit6.pas' {Form6},

Unit7 in 'Unit7.pas' {Form7};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm3, Form3);

Application.CreateForm(TForm4, Form4);

Application.CreateForm(TForm5, Form5);

Application.CreateForm(TForm6, Form6);

Application.CreateForm(TForm7, Form7);

Application.Run;

end.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls;

type

TForm1 = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Timer1: TTimer;

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

time:integer;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

time:=0;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

inc(time);

if time = 2 then

begin

form2.Show;

Timer1.Enabled:=false;

Form1.Enabled:=false;

end;

end;

end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, jpeg;

type

TForm2 = class(TForm)

Image1: TImage;

Image2: TImage;

Image3: TImage;

Image4: TImage;

Image5: TImage;

Image6: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

procedure Image1Click(Sender: TObject);

procedure Image6Click(Sender: TObject);

procedure Image5Click(Sender: TObject);

procedure Image4Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses Unit3, Unit4, Unit6;

{$R *.dfm}

procedure TForm2.Image1Click(Sender: TObject);

begin

halt

end;

procedure TForm2.Image6Click(Sender: TObject);

begin

form4.ShowModal;

end;

procedure TForm2.Image5Click(Sender: TObject);

begin

form3.Show;

end;

procedure TForm2.Image4Click(Sender: TObject);

begin

form6.Button1.Enabled:=false;

form6.ShowModal;

end;

end.

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, CheckLst, ExtCtrls, Grids, Buttons, jpeg, XPMan;

type

rec=record

num:integer;

ask:string[255];

p1,

p2,

p3,

good:string[90];

end;

TForm3 = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Image3: TImage;

Image1: TImage;

Image4: TImage;

Image2: TImage;

Label1: TLabel;

L1: TLabel;

L3: TLabel;

Label4: TLabel;

L2: TLabel;

Label6: TLabel;

L4: TLabel;

Label8: TLabel;

Memo1: TMemo;

XPManifest1: TXPManifest;

Image5: TImage;

Image6: TImage;

Image7: TImage;

Shape1: TShape;

procedure FormActivate(Sender: TObject);

procedure Image1Click(Sender: TObject);

procedure Image3Click(Sender: TObject);

procedure Image2Click(Sender: TObject);

procedure Image4Click(Sender: TObject);

procedure Panel3Click(Sender: TObject);

private

{ Private declarations }

public

procedure clean;

procedure LoadRND;

procedure LoadFileN(n:byte);

procedure LoadarrRND;

procedure Choose(n:byte);

procedure Lose;

procedure FiftyFifty;

procedure select(img:Timage; n:byte);

{ Public declarations }

end;

var

Form3: TForm3;

f:file of rec;

level:byte;

r:rec;

ar:array [1..1000] of rec; nr:integer;

an:array [1..1000] of integer; nn:integer;

implementation

uses Math, Unit5, Unit6, Unit7;

{$R *.dfm}

procedure TForm3.select(img:TImage; n:byte);

begin

img.Picture.LoadFromFile('Картинки\'+inttostr(n)+'.bmp');

end;

procedure TForm3.FiftyFifty;

var i:byte;

begin

for i:=1 to 4 do

if ((FindComponent('L'+inttostr(i))as TLabel).Caption = r.p1) or ((FindComponent('L'+inttostr(i))as TLabel).Caption = r.p2) then

(FindComponent('L'+inttostr(i))as TLabel).Caption:='';

end;

procedure TForm3.Lose;

begin

if MessageDlg('Ви програли! Зберегти результат?', mtInformation, [mbYes,mbNo], 0)=mrYes then form6.ShowModal;

end;

procedure TForm3.LoadFileN(n:byte);

begin

nr:=0;

nn:=0;

case n of

2:AssignFile(f,'two.bal');

3:AssignFile(f,'three.bal');

4:AssignFile(f,'four.bal');

5:AssignFile(f,'five.bal');

end;

reset(f);

while not(eof(f)) do

begin

nr:=nr+1;

read(f,r);

ar[nr]:=r;

end;

CloseFile(f);

end;

procedure TForm3.Choose(n:byte);

var i:byte;

begin

Form7.ShowModal;

if (FindComponent('L'+inttostr(n))as TLabel).Caption=r.good then

begin

level:=level+1; select((FindComponent('Image'+inttostr(n))as Timage),6 );

end

else

begin select((FindComponent('Image'+inttostr(n))as Timage),4 );

for i:=1 to 4 do

if (FindComponent('L'+inttostr(i))as TLabel).Caption=r.good then select((FindComponent('Image'+inttostr(i))as Timage),6 );

Lose;

Close;

end;

form5.Label2.Caption:=inttostr(level-1);

form5.ShowModal;

if level=4 then LoadFileN(3);

if level=7 then LoadFileN(4);

if level=10 then LoadFileN(5);

if level=13 then begin

if MessageDlg('Ви ОтлІчнІк! Зберегти результат?', mtInformation, [mbYes,mbNo], 0)=mrYes then

Form3.Tag:=12;

form6.ShowModal;

close;

end;

LoadarrRND;

LoadRND;

Image6.Height:=Image6.Height-40;

Form3.Tag:=level-1;

end;

procedure TForm3.clean;

var i:integer;

begin

for i:=1 to 1000 do

an[i]:=0;

end;

procedure TForm3.LoadarrRND;

var i,j:integer;

b:boolean;

begin

randomize;

if nn=nr then exit;

repeat

i:=RandomRange(0,nr)+1;

b:=false;

for j:=1 to nr do

if an[j]=i then b:=true ;

until b=false;

nn:=nn+1;

an[nn]:=i;

r:=ar[i];

end;

procedure TForm3.LoadRND;

var i,j,g:byte;

a:array [1..4] of byte;

b:boolean;

begin

for j:=1 to 4 do a[j]:=0;

randomize;

g:=0;

while g<4 do begin

i:=RandomRange(0,4)+1;

b:=false;

for j:=1 to 4 do

if a[j]=i then b:=true ;

if b then

else

begin

g:=g+1;

a[g]:=i;

case g of

1:(FindComponent('L'+inttostr(i))as TLabel).Caption:=r.p1;

2:(FindComponent('L'+inttostr(i))as TLabel).Caption:=r.p2;

3:(FindComponent('L'+inttostr(i))as TLabel).Caption:=r.p3;

4:(FindComponent('L'+inttostr(i))as TLabel).Caption:=r.good;

end;

end;

end;

Memo1.Text:=r.ask;

for i:=1 to 4 do

select((FindComponent('Image'+inttostr(i))as Timage),3 );

end;

procedure TForm3.FormActivate(Sender: TObject);

begin

level:=1;

LoadFileN(2);

Image6.Height:=449;

clean;

LoadarrRND;

LoadRND;

Shape1.Visible:=false;

end;

procedure TForm3.Image1Click(Sender: TObject);

begin

select(Image1,5 );

Choose(1);

end;

procedure TForm3.Image3Click(Sender: TObject);

begin

select(Image3,5 );

Choose(3);

end;

procedure TForm3.Image2Click(Sender: TObject);

begin

select(Image2,5 );

Choose(2);

end;

procedure TForm3.Image4Click(Sender: TObject);

begin

select(Image4,5 );

Choose(4);

end;

procedure TForm3.Panel3Click(Sender: TObject);

begin

FiftyFifty;

Shape1.Visible:=true;

end;

end.

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Buttons, StdCtrls;

type

rec=record

num:integer;

ask:string[255];

p1,

p2,

p3,

good:string[90];

end;

TForm4 = class(TForm)

Memo1: TMemo;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

SpeedButton1: TSpeedButton;

GroupBox1: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

procedure FormActivate(Sender: TObject);

procedure RadioButton1Click(Sender: TObject);

procedure RadioButton2Click(Sender: TObject);

procedure RadioButton3Click(Sender: TObject);

procedure RadioButton4Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure SpeedButton1Click(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }

public

procedure clear;

procedure readf;

procedure savef;

{ Public declarations }

end;

var

Form4: TForm4;

f:file of rec;

arr:array [1..100] of rec;

r:rec;

n:integer;

implementation

{$R *.dfm}

procedure TForm4.clear;

begin

Memo1.Clear;

Edit1.Clear;

Edit2.Clear;

Edit3.Clear;

Edit4.Clear;

end;

procedure TForm4.readf;

var i:integer; rc:rec;

begin

reset(f);

n:=0;

while not(eof(f)) do

begin

n:=n+1;

read(f,rc);

arr[n]:=rc;

end

end;

procedure TForm4.savef;

var i:integer; rc:rec;

begin

for i:=1 to n do

begin

rc:=arr[i];

write(f,rc);

end;

end;

procedure TForm4.FormActivate(Sender: TObject);

begin

clear;

n:=0;

end;

procedure TForm4.RadioButton1Click(Sender: TObject);

begin

SpeedButton1.Enabled:=true;

if n<>0 then savef;

AssignFile(f,'two.bal');

readf;

rewrite(f);

end;

procedure TForm4.RadioButton2Click(Sender: TObject);

begin

SpeedButton1.Enabled:=true;

if n<>0 then savef;

AssignFile(f,'three.bal');

readf;

rewrite(f);

end;

procedure TForm4.RadioButton3Click(Sender: TObject);

begin

SpeedButton1.Enabled:=true;

if n<>0 then savef;

AssignFile(f,'four.bal');

readf;

rewrite(f);

end;

procedure TForm4.RadioButton4Click(Sender: TObject);

begin

SpeedButton1.Enabled:=true;

if n<>0 then savef;

AssignFile(f,'five.bal');

readf;

rewrite(f);

end;

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);

begin

savef;

if SpeedButton1.Enabled=true then CloseFile(f);

end;

procedure TForm4.SpeedButton1Click(Sender: TObject);

begin

n:=n+1;

arr[n].ask:=Memo1.Text;

arr[n].p1:=Edit1.Text;

arr[n].p2:=Edit2.Text;

arr[n].p3:=Edit3.Text;

arr[n].good:=Edit4.Text;

arr[n].num:=n+1;

clear;

end;

procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if length((sender as TEdit).Text)=20 then key:=#0;

end;

end.

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;

type

TForm5 = class(TForm)

Timer1: TTimer;

Label1: TLabel;

Label2: TLabel;

Shape1: TShape;

Panel1: TPanel;

procedure Timer1Timer(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

t:integer;

implementation

{$R *.dfm}

procedure TForm5.Timer1Timer(Sender: TObject);

begin

t:=t+1;

if t=1 then form5.Visible:=true;

if t=3 then begin Timer1.Enabled:=false; close; end;

end;

procedure TForm5.FormActivate(Sender: TObject);

begin

form5.Visible:=false;

t:=0;

Timer1.Enabled:=true;

end;

end.

unit Unit6;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

type

TForm6 = class(TForm)

Memo1: TMemo;

Memo2: TMemo;

Edit1: TEdit;

Button1: TButton;

Panel1: TPanel;

Button2: TButton;

procedure FormActivate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form6: TForm6;

implementation

uses Unit3, Unit5;

{$R *.dfm}

procedure TForm6.FormActivate(Sender: TObject);

begin

Memo1.Clear;Memo2.Clear; Edit1.Clear;

memo1.Lines.LoadFromFile('name.bal');

memo2.Lines.LoadFromFile('res.bal');

end;

procedure TForm6.Button1Click(Sender: TObject);

begin

memo1.Lines.Add(Edit1.Text);

memo2.Lines.Add(inttostr(form3.Tag));

memo1.Lines.SaveToFile('name.bal');

memo2.Lines.SaveToFile('res.bal');

Button1.Enabled:=false;

end;

procedure TForm6.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Button1.Enabled:=true;

end;

procedure TForm6.Button2Click(Sender: TObject);

begin

close;

end;

end.

unit Unit7;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;

type

TForm7 = class(TForm)

Timer1: TTimer;

Label1: TLabel;

Label2: TLabel;

procedure Timer1Timer(Sender: TObject);

procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

t:integer;

implementation

{$R *.dfm}

procedure TForm7.Timer1Timer(Sender: TObject);

begin

t:=t+1;

if t=3 then begin Timer1.Enabled:=false; close; end;

end;

procedure TForm7.FormActivate(Sender: TObject);

begin

t:=0;

Timer1.Enabled:=true;

end;

end.

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


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

  • Побудова інформаційно-математичної моделі та алгоритм задачі. Визначення структури даних. Розробка інтерфейсу програми з користувачем. Складання коду програми. Реалізація проекту у візуальному середовищі. Тестування та інструкція з експлуатації програми.

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

  • Побудова інформаційно-математичної моделі задачі. Визначення структури даних. Розробка інтерфейсу програми з користувачем. Реалізація проекту у візуальному середовищі. Аналіз та тестування програми. Розгляд результатів та інструкція з експлуатації.

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

  • Побудова інформаційно-математичної моделі задачі. Визначення структури даних, розробка інтерфейсу. Складання коду програми за допомогою мови програмування Delphi 7.0. Реалізація проекту у візуальному середовищі. Інструкція з експлуатації програми.

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

  • Визначення та застосування фракталів. Огляд предметної області, вибір засобів розробки програмного забезпеченя. Побудова діаграми варіантів використання, послідовності дій, класів та компонентів, математичної моделі. Тестування програмного продукту.

    дипломная работа [1,9 M], добавлен 24.05.2015

  • Функції комп'ютерної програми-органайзера, пов'язані із забезпеченням роботи календаря, записної книжки, менеджера контактів (адресно-телефонної книги), годинника, калькулятора. Програмна модель, розробка інтерфейсу і тестування програми, інсталяція.

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

  • Можливості програмування за допомогою Delphi. Розробка програми "Кадровий облік", її функції. Алгоритм задачі: логіка програми, визначення структури даних та інтерфейсу. Аналіз програми та її тестування: переваги та недоліки у порівнянні з аналогами.

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

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

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

  • Розробка програми "Авто" для введення та збереження інформації про власників та їхні автомобілі. Побудова математичної моделі. Критерії вибору та пошуку даних. Структура введених та збережених у файлах програми даних. Алгоритм основної програми та її код.

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

  • Методи, засоби та алгоритми розв'язування задачі. Розробка інтерфейсу програми для забезпечення діалогу: ком'ютер - користувач при роботі з базою даних довідкової системи навчальних закладів. Програма та її опис, призначення. Логічна структура програми.

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

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

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

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