Гра "П’ятнашкина" на Delphi

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


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

програма користувач гра


1. Алгоритм розробки проекту


Для розробки проекту я використав 12 форм. На них я розмістив наступні компоненти:

·На перший форми реалізований алгоритм гри та керування процесом (пауза, лічильник ходів, час гри та контекстне меню). На цій формі розміщені такі компоненти:

1)Label4-9, Edit1,2,3, Timer1 - здійснює функціонування підрахунку часу гри.

2)Label10 - містить cвойстро Caption «Ходов:», Edit4 - відображає кількість ходів.

3)Image1,2,3 - поле Image показує картинку статі грака.

4)Label1 - містить cвойстро Caption «Игрок», Label 2 - відображає імя введене з клавіатури.

5)Label3 - містить Свойстро Caption «Возраст», Label 13 - Відображає вік грака.

6)Label11 - містить cвойстро Caption «Уровень», Label 12 - відображає рівень гри.

7)BitBtn1,2,3 - кнопка пауза та старт, які керують грою.

)Компонент MainMenu1 має меню, яке містить 3 пункти: «Гра - Заново, Нова гра, Рекорди, Вихід»; «Справка - Проходження, Про гру, Правила гри»; «Про гру».

·На другій(головній) формі «Привітання» гра пропонує вказати наше імя, стать, вік та рівень гри і здійснити вхід. На цій формі розміщені такі компоненти:

)Label - містить cвойстро Caption «Игра Пятнашки».

)Labe2 - містить cвойстро Caption «Введите ваше имя:».

3)Edit1 - компонент в який буде вводитися імя грака.

)Labe3,5,6,7 - містить cвойстро Caption «Укажите ваш пол:», «М», «Ж», «/».

)RadioButton1,2 - компонент який відповідає за стать и відображення малюнка на першій формі в полі Image1,2,3.

)Label4 - містить cвойстро Caption «Укажите ваш возраст:».

)ComboBox1 - дає змогу вибрати вік грака в інтервалі від 1-го до 100 років.

)Label8 - містить cвойстро Caption «Выберите уровень:».

)ComboBox2 - пропонує обрати рівень гри.

)BitBtn1 - кнопка «Вход» змінює видимість другої форми на «False» та переходить на третю форму.

·На третій формі «Авторизація» картинка та прогрес бар, після якого перехід на першу форму. На цій формі розміщені такі компоненти:

)Image1 - показує картинку авторизації.

)ProgressBar1 - відповідає за перехід до наступної форми.

)Timer1 - за допомогою якого здійснюється функціонування прогрес бару.

·На четвертій формі діалогове вікно «Паузи» на якому картинка та кнопка продовжити. На цій формі розміщені такі компоненти:

)Image1 - відображає в собі картинку «Чашка кофе», що символізує паузу.

)Label - містить cвойстро Caption «Продолжить», при натисканні на яку здійснюється повертання до попередньої форми.

·На пятій формі «Принцип проходження» розміщений компонент Мемо1 - в параметрі Lines містить текстову інформацію про «Принцип проходження»

·На шостій формі «Про Гру» розміщений компонент Мемо1 - в параметрі Lines містить текстову інформацію про «Про гру».

·На сьомій формі «Правила гри». Розміщені компонент Мемо1 та малюнок з правильним розміщенням кнопок:

)Memo1 - в параметрі Lines містить текстову інформацію про «Правила гри».

)Image1 - відображає картинку з правильним розміщенням костяшок.

·На восьмій формі «О програмі» розміщена інформація про програму. На цій формі розміщені такі компоненти:

)Image1 - відображає мою особисту картинку.

)Labe1 - містить cвойстро Caption «Курсовая работа».

)Labe2 - містить cвойстро Caption «Final версия».

)Labe3 - містить cвойстро Caption «Автор: Shkurik(c)».

)Labe4 - містить cвойстро Caption «2011».

·На девятій формі «Програв» картинка яка вказує на ваш програш та кнопка - яка дозволяє зіграти ще. На цій формі розміщені такі компоненти:

)Image1 - відображає картинку яка вказує на ваш програш.

)BitBtn1 - кнопка яка дозволяє зіграти ще.

·На десятій формі «Перемога» картинка, вказане імя грака, за скільки часу та скільки ходів зроблено. На цій формі розміщені такі компоненти:- відображає картинку, яка служить фоном всій формі.- містить cвойстро Caption «, вы победили!!» до якого буде добавлене імя грака.- містить cвойстро Caption «Чисте поле», куди буде вписана інформація за скільки ходів виграв.- містить cвойстро Caption «И за», куди буде дописано за який час виграли.- містить cвойстро Caption «Сыграть еще», при натисканні дозволяє зіграти ще.- містить cвойстро Caption «Выход», при натисканні закриває всю програму.

·На одинадцятій формі «Таблиця рекордів» відображена таблиця рекордів з базою даних Access. На цій формі розміщені такі компоненти:

1)ADOConnection1 - служить для підключення бази даних до форми.

)ADOQuery1 - до цього компоненту підключається ADOConnection1 та в параметрі SQL пропишемо Select * From Rekord для відображення таблиці. Та ставимо параметр Active - True.

)DataSource1 - до цього компоненту підключаємо ADOQuery1.

)DBGrid1 - в параметрі DataSource підключаємо DataSource1 для відображення в DBGrid1 таблиці рекордів.

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


2. Практична реалізація


.1 Опис структури даних та вимоги до них


Константи:= 80 - ширина фішки.

D = 10 - відстань між фішками.

L = D + W - відстань між «х» у фішці.

NXM = 4 - розмір поля 4х4.

N = 1; M = 16; - розмірність масиву фішек.

POLET = 10; POLEL = 10; - початкова позиція поля фішок на формі.

Змінні:

hour, min, sec: integer - змінні в які вносяться значення часу гри.

Go: integer - лічильник ходів.

Level: integer - змінна в яку записується рівень гри.

id: integer - зміна яка містить Query запрос з 11-й форми.

time:string - зміна відображуючи час грі при виграшу.

i, ty, lx: integer - лічильники.

Form2: TForm - форма типу TForm2.

Name_Igrok: String - зміна в яку записується імя грака.

Spisok:byte - зміна з ComboBox2 списку.

Levelof:byte - зміна з ComboBox1 списку.

Form3: TForm - форма типу TForm3.

i:integer - лічильник з таймеру.


2.2 Опис процедур і функцій користувача


Форма 1:

procedure FormCreate (Sender: TObject); - містить в собі глобальні змінні. Заповнює масив координатами які будуть випадковим чином ставитися. Фішки при початку нової гри.FormShow (Sender: TObject); - скидає всі елементи масиву в true, масив відповідає за неповторювані порядкові номери фішок які вибираються випадковим чином потрібно при ініціалізації нової гриF21Click (Sender: TObject); - Контекстне меню - гра - нова гра. Закінчує попередню і дозволяє зіграти ще.F101Click (Sender: TObject); - Контекстне меню - гра - рекорди. Показує таблицю рекордів відобразивши одинадцяту форму.N3Click (Sender: TObject); - Контекстне меню - гра - заново. Надає можливість зіграти ще.BitBtn1Click (Sender: TObject); - при натисканні зупиняє Timer1 та показує Form4 (Пауза) в модальному режимі.Timer1Timer (Sender: TObject); - відповідає за функціонування секундо мера (Час гри).FormClose (Sender: TObject; var Action: TCloseAction); - при закриттю вікна закривається вся програма.N5Click (Sender: TObject); - Контекстне меню - гра - проходження. Показує пяту форму «принцип проходження».N6Click (Sender: TObject); - Контекстне меню - гра - про гру. Показує шосту форму «О игре».N4Click (Sender: TObject); - Контекстне меню - гра - правила гри. Показує сьому форму «Правила гри».N7Click (Sender: TObject); - Контекстне меню - Про програму. Показує восьму форму «О програме» та зупиняє таймер.BitBtn3Click (Sender: TObject); - кнопка «Старт», працює тоді коли ми починаємо грати заново.N8Click (Sender: TObject); - Контекстне меню - гра - вихід. Здійснює вихід з гри.ButClicked (Sender: TObject); - переміщення фішки на нову позицію.CreatFishkas(); - Нова гра, створення ігрового поля.KillOldFihkas(); - знищує кнопки - фішки, потрібно перед началом нової гри.victopia(); - перевірка - перемога або граємо далі.

Форма 2:

procedure BitBtn1Click (Sender: TObject); - кнопка «Вход». Записує ведене імя в змінну, перевіряє значення RadioButton. Checked, включає таймер на першій формі, змінює значення видимості на False та відкриває першу форму.ComboBox1Change (Sender: TObject); - реагує на зміну поля, обравши вік передає на першу форму та робить доступним ComboBox2.ComboBox2Change (Sender: TObject); - реагує на зміну поля, задає рівень гри (кількість ходів).

Форма 3:

procedure Timer1Timer (Sender: TObject); - ця процедура двигає прогрес бар.

Форма 4:

procedure Label1Click (Sender: TObject); - включає таймер та закриває четверту форму(пауза).

Форма 8:

procedure FormClose (Sender: TObject; var Action: TCloseAction); - при закриттю форми на першій формі продовжується робота таймера.

Форма 9:

procedure BitBtn1Click (Sender: TObject); - закриває активну форму и надає нам шанс зіграти ще.

Форма 10:

procedure Label10Click (Sender: TObject); - закриває активну форму и надає нам шанс зіграти ще.Label11Click (Sender: TObject); - закриває активну форму та всю програму.

Форма 12

procedure Image1Click (Sender: TObject); - при на тисканні на малюнок активізує таймер і дозволяє нам грати.


.3 Опис процедур і функцій, які використовувались в програмі


Function position (const x, y: integer): integer; - визначає позицію на якій стоїть фішка в даний момент по її координатам.

Function strtofloat (<Value>:string): real; - повертає рядок, що містить символьне значення Value.

Function floattostr (<Value>: real): string; - повертає рядок, що містить дійсне значення Value.


.4 Опис файлів та їх призначення


Project1.dpr - файл проекту. Цей текстовий файл використовується для зберігання інформації про форми та модулі. На ньому містяться оператори ініціалізації та запуску файлів на виконання.

Project1.exe - Виконуваний файл проекту. Він є автономним виконуваним файлом, для якого більше нічого не треба.

Project1.res - бінарний файл, який містить використовувані проектом ресурси..pas - текстовий файл модуля, який відповідає формі Form1. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form1, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit1.pas, який компонується в кінцевий робочий файл..dpp - файл діаграм, створений на сторінці діаграм вікна Редактора Коду. В даному проекті діаграми не використовувались..pas - текстовий файл модуля, який відповідає формі Form2. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form2, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit2.pas, який компонується в кінцевий робочий файл..dpp - файл діаграм, створений на сторінці діаграм вікна Редактора Коду. В даному проекті діаграми не використовувались..pas - текстовий файл модуля, який відповідає формі Form3. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form3, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit3.pas, який компонується в кінцевий робочий файл..dpp - файл діаграм, створений на сторінці діаграм вікна Редактора Коду. В даному проекті діаграми не використовувались..pas - текстовий файл модуля, який відповідає формі Form4. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form4, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit4.pas, який компонується в кінцевий робочий файл..dpp - файл діаграм, створений на сторінці діаграм вікна Редактора Коду. В даному проекті діаграми не використовувались..pas - текстовий файл модуля, який відповідає формі Form5. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form5, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit5.pas, який компонується в кінцевий робочий файл..dpp - файл діаграм, створений на сторінці діаграм вікна Редактора Коду. В даному проекті діаграми не використовувались..pas - текстовий файл модуля, який відповідає формі Form6. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form6, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit6.pas, який компонується в кінцевий робочий файл..dpp - файл діаграм, створений на сторінці діаграм вікна Редактора Коду. В даному проекті діаграми не використовувались..pas - текстовий файл модуля, який відповідає формі Form7. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form7, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit7.pas, який компонується в кінцевий робочий файл..dpp - файл діаграм, створений на сторінці діаграм вікна Редактора Коду. В даному проекті діаграми не використовувались..pas - текстовий файл модуля, який відповідає формі Form8. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form8, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit8.pas, який компонується в кінцевий робочий файл..dpp - файл діаграм, створений на сторінці діаграм вікна Редактора Коду. В даному проекті діаграми не використовувались..pas - текстовий файл модуля, який відповідає формі Form9. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form9, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit9.pas, який компонується в кінцевий робочий файл..dpp - файл діаграм, створений на сторінці діаграм вікна Редактора Коду. В даному проекті діаграми не використовувались..pas - текстовий файл модуля, який відповідає формі Form10. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form10, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit10.pas, який компонується в кінцевий робочий файл..dpp - файл діаграм, створений на сторінці діаграм вікна Редактора Коду. В даному проекті діаграми не використовувались..pas - текстовий файл модуля, який відповідає формі Form11. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form11, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit11.pas, який компонується в кінцевий робочий файл..pas - текстовий файл модуля, який відповідає формі Form12. Використовується для зберігання коду..dfm - файл, в якому зберігається інформація про зовнішній стан форми Form12, її розміри та розміщення на екрані..dcu - відкомпільований файл модуля Unit12.pas, який компонується в кінцевий робочий файл.records.mdb - база даних в якій зберігаються рекорди, та додаються нові.


3. Інструкція для роботи з програмою


Програма розроблялася на ПК з наступною конфігурацією:

·Операційна Система: Microsoft Windows ХР.

·Компютер: Intel Celeron(R) CPU D 320, 2.00 ГГц, 1.00 ГБ ОЗП.

Програма була опротестована на компютері з наступною конфігурацією:

·Система: Microsoft Windows 7.

·Компютер: Intel Celeron, 2.00 ГБ ОЗП.

Для початку роботи програми необхідно запустити файл Tag.exe.

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


Після чого зявиться вікно авторизація.


Після якої зявиться вікно з грою


Натиснувши паузу зявляється діалогове вікно в модальному режими. Щоб повернутися треба натиснути «Продолжить»


В контекстному меню «Игра» можна побачити:


Обравши «заново» зявиться діалогове вікно в модальному режимі з картинкою:


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

В контекстному меню «Справка» можна побачити:


Обравши:

«Правила игри» відкриеться вікно в якому описано правила гри.


«Прохождение» - відкриється діалогове вікно в якому докладніше описано принцип проходження гри.

«О игре» - Відкриється діалогове вікно в якому описана історія гри.

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


4. Результати роботи програми


Коли в процесі гри роставити кості в правильному порядку (так я к на малюнку)


Одразу зявиться діалогове вікно «Победа!» в якому будуть відобразатись наши дані. Імя, скільки зроблено ходів та за скільки часу. Також ми можемо обрати «Сыграть еще» та «Выход».

Переглянути переможців можна в таблиці рекордів скориставшись контекстним меню «Игра - Рекорды» в вікню гри.


Обравши «рекорди», зявиться діалогове вікно «Таблица рекордов» де відображаються інформація про всіх переможців нашої гри.


Висновок


Під час виконання курсового проекту я створив гру головоломку «Пятнашки», яка рахує кількість ходів, час, гру можна ставити на паузу та продовжувати її. Також гра Пятнашки записує переможців до бази даних Microsoft Access, потім їх можна переглядати з контекстного меню. Є чотири рівні складності проходження. В справці є все необхідне таке як правила гри, принцип проходження про історію гри. орив. Гра Пятнашки сподобається як дорослим так і дітям, адже її віковий діапазон віх 1 до 100 років. При розробці цього проекту я використав знання здобуті на лекціях та практичних заняттях з дисципліни «Основи програмування та алгоритмічні мови» та при роботі з мовою програмування і компілятором «Borland Delphi».


Література


1.Дарахвелидае П.Г., Марков Е.П. Программирование в Delphi 7,2007 p.-320c.

2.Джулиан Бакнелл. Фундаментальные алгоритмы и структуры данных в Delphi - ДиаСофтЮП, 2003p. - 560 с

.Кэнту М. Delphi 7. Для профессионалов, 2007 p.-250c.

.Трепалин С.В., Тенцер А., Елманова Н.З. Delphi 6 и технология COM, 2006p. - 470c.

.Шупрута В.В. Delphi 2005. Учимся программировать, 2005 p.-550c.


Додаток А


Лістинг модуля Unit1

unit Unit1;, Messages, SysUtils, Classes, Graphics, Controls, Forms,, StdCtrls, Menus, XPMAN, ExtCtrls, Buttons, jpeg;= class(TForm): TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TLabel;: TImage;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TEdit;: TBitBtn; Timer1: TTimer; Label10: TLabel; Edit4: TEdit; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Image2: TImage; Image3: TImage; BitBtn3: TBitBtn; Button1: TButton; N8: TMenuItem; procedure FormCreate (Sender: TObject); procedure FormShow (Sender: TObject); procedure F21Click (Sender: TObject); procedure F101Click (Sender: TObject); procedure N3Click (Sender:TObject); procedure BitBtn1Click (Sender: TObject); procedure Timer1Timer (Sender: TObject); procedure FormClose (Sender: TObject; var Action:TCloseAction); procedure N5Click (Sender: TObject); procedure N6Click (Sender: TObject); procedure N4Click (Sender: TObject); procedure N7Click (Sender: TObject); procedure BitBtn3Click (Sender: TObject); procedure Button1Click (Sender: TObject); procedure N8Click (Sender: TObject);procedure ButClicked (Sender: TObject); procedure CreatFishkas(); procedure KillOldFihkas(); function position (const x, y: integer): integer; procedure victopia(); {Private declarations}{Public declarations} end;Tfish = TButton; // указываем тип наших фишек, не нравится бутон - укажите другойW = 80; D = 10; L = D + W; NXM = 4; N = 1; M = 16; POLET = 10; POLEL = 10;= 'Fishka';: TForm1;: array [N..M] of Tfish;: array [N..M] of boolean;, zeroY: integer;: array [1..M, 1..2] of integer;, min, sec, go, level, id: integer;:string;Unit2, Unit4, Unit3, Unit5, Unit6, Unit7, Unit8, Unit9, Unit10,, Unit12; {$R *.dfm}TForm1. FormCreate (Sender: TObject);i, ty, lx: integer;:=0; min:=0; sec:=0; go:=0; time:=''; id:=0; randomize; i:= 0;

// заполняем массив коорденатами на которые будут случайным образом ставиться:= POLET; lx:= POLEL;i:= N to M do begin[i, 1]:= lx;[i, 2]:= ty;:= lx + L;i mod NXM = 0 then begin:= ty + L;:= POLEL;; end; end;TForm1. FormShow (Sender: TObject);CreatFishkas(); end;

{сбрасывает все элементы массива в true,

массив отвечает за неповторяющиеся порядковые номера фишек

которые выбираются случайным образом

нужно при иницилизации новой игры}dump(): boolean;i: integer;:= 0; for i:= N to M do sorseAr[i]:= true;;

// непосредственно алгоритм выборки неповторяющихся значений случайным образомchoose(): integer;i: integer;:= 0; result:= random(M) + 1; while sorseAr[result] = false do result:= random(M) + 1; sorseAr[result]:= false;;TForm1. CreatFishkas;

// НОВАЯ ИГРА, создание игрового поляi, ty, lx, ch: integer;; dump(); ty:= POLET; lx:= POLEL; for i:= N to M do begin[i]:= Tfish. Create(Self); btn[i].Width:= W; btn[i].Height:= W; btn[i].Font. Size:= 26; btn[i].Font. Style:= [fsBold]; ch:= choose(); // получаем случайным образом число 1-16, числа не повторяються btn[i].Left:= XYmatrix [ch, 1]; // получаем коорденату Х btn[i].Top:= XYmatrix [ch, 2]; // получаем коорденату У[i].Tag:= ch; // в Tag будем держать текущее положение фишки[i].Name:= prefix + inttostr(i);i <> M then begin[i].Caption:= inttostr(i);[i].OnClick:= ButClicked;else begin[i].Caption:= «;:= btn[i].Left; zeroY:= btn[i].Top;;[i].Parent:= Self;;;TForm1.position (const x, y: integer): integer;i: integer;:= 0;:= -32;i:= N to M do begin((XYmatrix [i, 1] = x) and (XYmatrix [i, 2] = y)) then:= i; break;;;;TForm1. ButClicked (Sender: TObject);X, Y, ps: integer;:= Tfish(Sender).left; Y:= Tfish(Sender).Top;((X = zeroX + L) and (Y = zeroY)) or

((X = zeroX - L) and (Y = zeroY)) or

((X = zeroX) and (Y = zeroY + L)) or

((X = zeroX) and (Y = zeroY - L)) then(Sender).Left:= zeroX;(Sender).Top:= zeroY;(FindComponent(prefix + inttostr(M))).left:= X;(FindComponent(prefix + inttostr(M))).top:= Y;:= position (zeroX, zeroY);ps <> -32 then(Sender).Tag:= ps else('Ошибка в логике проги. КООРДЕНАТЫ');:= X; zeroY:= Y;

// Счетчик ходов Begin:=go+1;. Text:=inttostr(go);go=level Then

{KillOldFihkas(); CreatFishkas();} Timer1. Enabled:=False; Form9. ShowModal; End; victopia(); end; end;TForm1.victopia;i: integer; b: boolean;:= true; i:= 0; for i:= N to M - 1 dostrtoint (Tfish(FindComponent (prefix +inttostr(i))).Caption)(FindComponent(prefix + inttostr(i))).Tag thenb:= false; break; end; end;b then // победа:=IntToStr(hour)+':'+IntToStr(min)+':'+IntToStr(sec); Timer1. Enabled:=False; Form10. Label1. Caption:=Name_Igrok+Form10. Label1. Caption; Form10. Label2. Caption:='За'+time+'времени'; Form10. Label9. Caption:='И за '+inttostr(go)+' ходов'; Form10. Show;Form11.ADOQuery1. Recordset. MoveLast; id:=Form11.ADOQuery1. Recordset. Fields[0].Value; Form11.ADOQuery1. InsertRecord([IntToStr (id+1), Name_Igrok, IntToStr(go), time, Label3. Caption]); End; End; end;TForm1. KillOldFihkas;i: integer;for i:= N to M do FreeAndNil (btn[i]); end;TForm1.F21Click (Sender: TObject);KillOldFihkas(); CreatFishkas(); Timer1. Enabled:=False; hour:=0; min:=0; sec:=0; go:=0; BitBtn1. Visible:=True; BitBtn3. Visible:=False; Edit1. Text:='00'; Edit2. Text:='00'; Edit3. Text:='00'; Edit4. Text:='0000'; Label13. Visible:=True; Label3. Caption:='Возраст'; Label12. Caption:='Не указан'; Label14. Caption:=''; Image1. Visible:=True; Image2. Visible:=False; Image3. Visible:=False; Form2. Edit1. Text:=''; Form2. RadioButton1. Checked:=False; Form2. RadioButton2. Checked:=False; Form2. ComboBox1. Text:='Укажите ваш возраст'; Form2. ComboBox2. Text:='не указано'; Form2. BitBtn1. Enabled:=False; Form2. ComboBox2. Enabled:=False; Form2. ShowModal; end;TForm1.F101Click (Sender: TObject);Form11. Show; end;TForm1.N3Click (Sender: TObject);KillOldFihkas(); CreatFishkas(); Timer1. Enabled:=False; hour:=0; min:=0; sec:=0; go:=0; BitBtn1. Visible:=False; Edit1. Text:='00'; Edit2. Text:='00'; Edit3. Text:='00'; Edit4. Text:='00000'; Form12. ShowModal; end;TForm1. BitBtn1Click (Sender: TObject);Timer1. Enabled:=False; Form4. ShowModal; end;TForm1. Timer1Timer (Sender: TObject);sec:=sec+1; if sec>=60 thenbegin sec:=0; min:=min+1 end; if min>=60 then begin min:=0; hour:=hour+1 end; Edit1. Text:=IntToStr(hour); Edit2. Text:=IntToStr(min); Edit3. Text:=IntToStr(sec); end;TForm1. FormClose (Sender: TObject; var Action: TCloseAction);Form2. Close; Form3. Close; Form4. Close; end;TForm1.N5Click (Sender: TObject);Form5. Show; end;TForm1.N6Click (Sender: TObject);Form6. Show; end;TForm1.N4Click (Sender: TObject);Form7. Show; end;TForm1.N7Click (Sender: TObject);Timer1. Enabled:=False; Form8. ShowModal; end;. BitBtn3Click (Sender:TObject); begin KillOldFihkas(); CreatFishkas(); hour:=0; min:=0; sec:=0; go:=0; Timer1. Enabled:=True; BitBtn1. Visible:=True; BitBtn3. Visible:=False; end; procedureTForm1. Button1Click (Sender:TObject); begintime:=IntToStr(hour)+':'+IntToStr(min)+':'+IntToStr(sec); Timer1. Enabled:=False; Form10. Label1. Caption:=Name_Igrok+Form10. Label1. Caption; Form10. Label2. Caption:='За'+time+'времени'; Form10. Label9. Caption:='Иза'+inttostr(go)+'ходов'; Form10. Show; Begin Form11.ADOQuery1. Recordset. MoveLast; id:=Form11.ADOQuery1. Recordset. Fields[0].Value; Form11.ADOQuery1. InsertRecord([IntToStr (id+1), Name_Igrok, IntToStr(go), time, Label3. Caption]); End; end; procedure TForm1.N8Click (Sender: TObject); beginApplication. Terminate(); end; end.


Додаток Б


Лістинг модуля Unit2

unit Unit2;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls, Buttons, XPMAN;= class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; BitBtn1: TBitBtn; Image1: TImage; Edit1: TEdit; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Label5: TLabel; Label6: TLabel; Label7: TLabel; ComboBox1: TComboBox; Label8: TLabel; ComboBox2: TComboBox; procedure BitBtn1Click (Sender: TObject); procedure ComboBox1Change (Sender: TObject);ComboBox2Change (Sender: TObject);{Private declarations} public {Public declarations} end;: TForm2; Name_Igrok: String; implementationUnit1, Unit3, Unit4, Unit10, Unit11, Unit12, Unit5, Unit6, Unit7, Unit8, Unit9; {$R *.dfm}TForm2. BitBtn1Click (Sender: TObject);Begin if Edit1. Text='' Then Edit1. Text:='Аноним'; Name_Igrok:=Edit1. Text; Form1. Label2. Caption:=Name_Igrok; End; if RadioButton1. Checked=True then Begin Form1. Image2. Visible:=True; Form1. Image1. Visible:=False; Form1. Image3. Visible:=False; End; if RadioButton2. Checked=True then Begin Form1. Image3. Visible:=True; Form1. Image1. Visible:=False; Form1. Image2. Visible:=False; End; Form3. Timer1. Enabled:=True; Form3. ShowModal; end; procedure TForm2. ComboBox1Change (Sender: TObject);Spisok:byte;. Enabled:=True; Spisok:=ComboBox1. ItemIndex;Spisok of

:begin Form1. Label3. Caption:='1Год'; Form1. Label3. Font. Color:=clpurple; Form1. Label13. Visible:=False; end;

:begin Form1. Label3. Caption:='17лет'; Form1. Label3. Font. Color:=clpurple; Form1. Label13. Visible:=False; end;

:begin Form1. Label3. Caption:='18лет'; Form1. Label3. Font. Color:=clpurple; Form1. Label13. Visible:=False; end;

:begin Form1. Label3. Caption:='19лет'; Form1. Label3. Font. Color:=clpurple; Form1. Label13. Visible:=False; end;

:begin Form1. Label3. Caption:='20лет'; Form1. Label3. Font. Color:=clpurple; Form1. Label13. Visible:=False; end;

:begin Form1. Label3. Caption:='99лет'; Form1. Label3. Font. Color:=clpurple; Form1. Label13. Visible:=False; end elseForm1. Label3. Caption:='100лет'; Form1. Label3. Font. Color:=clpurple; Form1. Label13. Visible:=False; end; end; end;TForm2. ComboBox2Change (Sender: TObject);Levelof:byte;. Enabled:=True;:=ComboBox2. ItemIndex;Levelof of

:begin Form1. Label12. Caption:='Легкий'; Form1. Label14. Caption:='1000 ходов'; Form1. Label12. Font. Color:=clGreen; level:=1000; end;

:begin Form1. Label12. Caption:='Нормальный'; Form1. Label14. Caption:='500 ходов'; Form1. Label12. Font. Color:=clBlue; level:=500; end; 2:begin Form1. Label12. Caption:='Тяжелый'; Form1. Label14. Caption:='150 ходов'; Form1. Label12. Font. Color:=clOlive; level:=150; end elsebeginForm1. Label12. Caption:='Нереальний'; Form1. Label14. Caption:='1ход'; Form1. Label12. Font. Color:=clOlive; level:=1; end; end; end; end.


Додаток В


Лістинг модуля Unit3

unit Unit3;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, XPMAN, ComCtrls, ExtCtrls, jpeg;= class(TForm): TImage;: TTimer;: TProgressBar;Timer1Timer (Sender: TObject);

{Private declarations} public {Public declarations} end;: TForm3; i:integer;Unit1, Unit2, Unit4, Unit10, Unit11, Unit12, Unit5, Unit6, Unit7,, Unit9;

{$R *.dfm}TForm3. Timer1Timer (Sender: TObject);:=i+1; ProgressBar1. Position:=i;i=100 then begin Timer1. Enabled:=False; i:=0;. Show; Form2. Visible:=False; Form3. Close;. Timer1. Enabled:=True;; end; end.


Теги: Гра "П’ятнашкина" на Delphi  Курсовая работа (теория)  Информационное обеспечение, программирование
Просмотров: 3188
Найти в Wikkipedia статьи с фразой: Гра "П’ятнашкина" на Delphi
Назад