Автор работы: Пользователь скрыл имя, 17 Марта 2014 в 00:25, курсовая работа
В наш час проблема створення програм і впровадження їх у повсякденне життя дуже актуальна. Так, наприклад, дуже корисною для людини є створення програм внесення оплати за різні послуги через термінали. В кожному офісі є ПК зі спеціальними програмами для роботи. За допомогою програм ведеться виробництво складної техніки на підприємствах, автоматизація виробництв. Програми використовуються в електро-технічних приладах домашнього користування: калькулятори, пральні машини, відеокамери, фотоапарати тощо. Отже, для руху прогресу та впровадження розробки нових технологій потрібні програмісти. Програмування одна з найскладніших наук, і обсяг інформації, засвоюваній програмістом дуже складно запам'ятати.
ПЕРЕЛІК СКОРОЧЕНЬ, СИМВОЛІВ ТА СПЕЦІАЛЬНИХ ТЕРМІНІВ
Deplhi – мова програмування
ПЗ – програмне забезпечення
OP – Object Pascal
СКБД - система керування базами даних
БД – база даних
МП – мікропроцесор
ПК – персональний комп’ютер
ОС – операційна система
ВСТУП
В наш час проблема створення програм і впровадження їх у повсякденне життя дуже актуальна. Так, наприклад, дуже корисною для людини є створення програм внесення оплати за різні послуги через термінали. В кожному офісі є ПК зі спеціальними програмами для роботи. За допомогою програм ведеться виробництво складної техніки на підприємствах, автоматизація виробництв. Програми використовуються в електро-технічних приладах домашнього користування: калькулятори, пральні машини, відеокамери, фотоапарати тощо. Отже, для руху прогресу та впровадження розробки нових технологій потрібні програмісти.
Програмування одна з найскладніших наук, і обсяг інформації, засвоюваній програмістом дуже складно запам'ятати. Для допомоги програмістам створюються і розробляються програми, орієнтовані на завдання програмістів. Вони допомагають полегшити життя починаючому програмісту і заощадити час більш досвідченому програмісту; виключають пошук потрібної довідкової інформації в інтернеті та бібліотеках, забезпечуючи потрібними даними прямо на робочому місці. Час - головний фактор у роботі програміста, від якого залежить заробітна плата. Іноді терміни на написання програми дуже стислі, і це не дозволяє витрачати багато часу на пошук інформації в книгах і довідниках. Можна використовувати пошук в інтернеті, але ще більш спрощує роботу програміста довідковапрограма. За допомогою таких програм, так само, як і за допомогою інтернету, програміст може знайти інформацію, не відходячи від робочого місця. Перевага програми перед інтернетом в тому, що вона виключає «копання» по сайтах, зустрiчiз спамом чи вірусами.
Тема курсовоїроботи - створення гри“Lines” з візуальними компонентами інтегрованого середовища Delphi. Завдання програми - це допомога у вивченні властивостей і призначень візуальних компонентів інтегрованого середовища Delphi.
1 ПРИЗНАЧЕННЯ ТА ОБЛАСТЬ
Delphi - це об'ектно-орієнтоване середовище для візуальної побудови програмних продуктів, засноване на мові ObjectPascal, що є переробленою й істотно доповненою версією TurboPascal фірмиBorland.
Програмування в Delphi складається з двох основних етапів:
1) візуальна побудова програми
на основі об'єктних
2) написання програмного коду мовою ObjectPascal для забезпечення особливої функціональності додатка, яку неможливо досягти використанням візуальної побудови.
З моменту першої реалізації мови Pascal технології програмування зробили величезний крок вперед. І, незважаючи на те, що Pascal теж розвивався, його останній версії, випущеній фірмою Borland у 1990 році, істотно бракує можливостей, властивих іншим сучасним мовам програмування. В середовищі Delphi використовується оновлений варіант цієї популярної мови. Зміни торкнулись, перш за все, об'єктно-орієнтованої частини Pascal, однак, здавалося б цілком завершені інструменти структурного і модульного програмування також придбали деякі нові особливості.
Основними елементами програми мовою ObjectPascal є:
- оператори - команди, що визначають
структуру програми (наприклад, оператори
розгалуження і зациклення) або
виконуючі які-небудь дії (наприклад,
арифметичні операції чи
- ключові слова - команди, використовувані
звичайно для відокремлення
- директиви компілятору - аналогічні
ключовим словам, але впливають
не на програму і її структуру,
а на процес компіляції і
побудови програми. Частину директив
компілятору можна установити
за допомогою головного меню
інтегрованого середовища, однак
використання директив у
Отже, спочатку середовище розробки Delphi було призначене виключно для розробки додатків Microsoft Windows, потім був реалізований варіант для платформ Linux (як Kylix), однак після випуску в 2002 році Kylix 3 його розробка була припинена, і незабаром було оголошено про підтримку Microsoft. NET. Delphi в основному використовується для розробки настільних застосунків та корпоративних СКБД, проте цей інструмент можна використовувати для розробки будь-якого загального програмного забезпечення. Не залишена осторонь і можливість побудови веб-застосунків.
Гра Lines має розважальний характер. Її суть полягає в тому, щоб набрати якомога більше балiв, за якомога менше крокiв. Гра набрала дуже велику популярнiсть, i зараз, її реалiзацiю можна побачити на великiй кiлькостi мов програмування. Цiкавим фактом є те, що в одній з телевізійних передач «Ляльки» президент Російської Федерації Єльцин був зображений граючим від неробства в Lines.
2 ОПИС I ОБГРУНТУВАННЯ ПРОЕКТНИХ РIШЕНЬ ЩОДО
РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ
Lines (ColorLines, в народі Кульки) - логічна комп'ютерна гра, винайдена Олегом Дьоміним, Геннадієм Денисовим та Ігорем Івкіним і розроблена російською компанією Gamos в 1992 році.
В класичній грі на екрані показано квадратне поле 9×9 клітинок, у випадкові клітини на якому програма виставляє три кульки різних кольорів. Всього 6 можливих кольорів . За один крок гравець може пересунути одну кульку, виділивши її i вказавши нове місце розташування. Для здійснення кроку необхідно, щоб між початковою і кінцевою клітинками існував шлях з вільних клітинок. Мета гри полягає у видаленні максимальної кількості кульок, які зникають при вибудовуванні кульок одного кольору по п'ять і більше в ряд ( по горизонталі, вертикалі або діагоналі). При зникненні ряду кульок нові три кульки не виставляються. В іншому випадку кожен крок виставляються нові три кульки.
Гра має аналоги: Five or More та Four-in-a-Row. Якщо друга гра хоча б вимагає складання 4-х кульок в ряд, то перша – це взагалi повна копiя Lines.
Гру було розроблено на мові програмування Delphi тому, що мова є об’єктно-рієнтованою і призначена для створення програм, які мають інтерфейс.
Основними елементами є процедури, функцiї та умовнi оператори.
Процедура Delphi просто виконує необхідні операції, але ніяких результатів своїх дій не повертає. Результат - в тих змінах, які відбулися в програмі в процесі виконання цієї процедури. Зокрема, процедура може змiнити значення змінних, записати нові значення в комiрки компонентів, зробити запис у файл і т.д.
Функція Delphi також дозволяє виконати все перераховане, але додатково повертає результат в присвоєному їй самій значенні. Тобто виклик функції може бути присутнім у виразі праворуч від оператора присвоювання. Таким чином, функція - більш універсальний об'єкт.
Опис підпрограми складається з ключового слова procedure або function, за яким слідує ім'я підпрограми зі списком параметрів, укладених у дужки. У випадку функції далі ставиться двокрапка і вказується тип значення. Звичайна
крапка з комою далі - обов'язкова. Сам код підпрограми ставиться в "логічні дужки" begin/end. Для функції необхідно в коді привласнити зміннiй з ім'ям функції або спеціальнiй зарезервованiй зміннiй Result (переважно) значення, яке повертається функцією.
Алгоритм роботи умовного оператора має наступний вигляд. Спочатку обчислюється вираз - умова. Отримуємо результат логічного типу. Якщо результат дорівнює TRUE, то виконуються оператори, що входять до списку операторів 1, а список операторів 2 пропускається. Якщо результат дорівнює FALSE, то відбувається зворотна дія - виконуються оператори, що входять до списку операторів 2, а список операторів 1 пропускається.
Для генерації кульок кожен крок, було використано функцiю Random. Ця функція генерує випадкове ціле число в заданному діапазоні [0...Range). Параметр Range є необов'язковим. Якщо цей параметр опущений, то функція повертає число дійсного типу в діапазоні [0...1). Якщо не проводити ініціалізацію, то при кожному запуску програми, функція Random буде повертати одну і ту ж послідовність чисел.
3 РЕАЛIЗАЦIЯ РОБОТИ
Для правильної роботи програми необхiдно внести вiдповiднi змiннi. Розглянемо частину коду:
var
BMP:TBitmap;
Form1: TForm1;
a:array [0..8,0..8] ofinteger;
b:array [0..8,0..8] ofinteger;
TempX,TempY,TempZ:integer;
Dollar,KolvoStep:integer;
BALLClick:boolean;
Тут бачимо, що для розмiщення кульок необхiдно було застостувати масив, а другий масив потрiбен для реалiзацiї пошуку шляху та видалення шарiв. Пiсля чого, вносимо змiннi тимчасового зберiгання параметрiв кульки. Потiм змiннi для вiдображення кiлькостi балiв i кiлькостi кульок на полi. I в завершення внесемо змiнну вiдповiдаючу за те, чи вибрана кулька для її подальшого перемiщення.
Далi потрiбно внести вiдповiднi функцiї та процедури:
functionDeleteBALLLine:
procedureNewGameForSer; - процедура для початку нової гри;
procedureRandomBALL; - процедура для появи нових шарiв;
procedureFindZero(x1,y1:
Для процедур також потрiбно вказати змiннi. Так, наприклад, виглядає код готової процедури початку нової гри:
procedureNewGameForSer;
var x,y:integer;
begin
Form1.Label1.Caption:='Очки: 0';
BALLClick:=false;
KolvoStep:=0;
Dollar:=0;
Form1.Imagelist1.GetBitmap(0,
for x:=0 to 8 do
for y:=0 to 8 do
begin
a[x,y]:=0;
b[x,y]:=0;
Form1.Image1.Canvas.Draw(x*32,
end;
Таким чином, при натисненi кнопки обнуляються всi значення, в тому числi кiлькiсть балiв i кiлькiсть зроблених крокiв.
if KolvoStep=81
thenbeginShowMessage('
вданнiйчастинi коду реалiзується умовний оператор. Тобто, якщо кiлькiсть кульок стане 81, тодi програма виведе повiдомлення “GameOver” i гру буде завершено. А при натиску кнокпи “ОК”, гра почнеться спочатку.
Для того щоб кульки видалялися з поля необхiдно прописати слiдуючий код:
functionDeleteBALLLine:
vari,j:integer;
begin
DeleteBALLLine:=false;
Form1.Imagelist1.GetBitmap(0,
Тепер, для правильного видалення кульок необхiдно реалiзувати код для кожного напрямку.
Для видалення по горизонталi:
fori:=0 to 4 do
for j:=0 to 8 do
if (a[i,j]=a[i+1,j]) and (a[i,j]=a[i+2,j]) and (a[i,j]=a[i+3,j]) and (a[i,j]=a[i+4,j]) and (a[i,j]>0) then
begin
b[i,j]:=-20;
b[i+1,j]:=-20;
b[i+2,j]:=-20;
b[i+3,j]:=-20;
b[i+4,j]:=-20;
end;
Для видалення по вертикалi:
fori:=0 to 8 do
for j:=0 to 4 do
if (a[i,j]=a[i,j+1]) and (a[i,j]=a[i,j+2]) and (a[i,j]=a[i,j+3]) and (a[i,j]=a[i,j+4]) and (a[i,j]>0) then
begin
b[i,j]:=-20;
b[i,j+1]:=-20;
b[i,j+2]:=-20;
b[i,j+3]:=-20;
b[i,j+4]:=-20;
end;
Для видалення по дiагоналi:
for i:=0 to 4 do
for j:=0 to 4 do
if (a[i,j]=a[i+1,j+1]) and (a[i,j]=a[i+2,j+2]) and (a[i,j]=a[i+3,j+3]) and (a[i,j]=a[i+4,j+4]) and (a[i,j]>0) then
begin
b[i,j]:=-20;
b[i+1,j+1]:=-20;
b[i+2,j+2]:=-20;
b[i+3,j+3]:=-20;
b[i+4,j+4]:=-20;
end;
for i:=8 downto 4 do
for j:=0 to 4 do
if (a[i,j]=a[i-1,j+1]) and (a[i,j]=a[i-2,j+2]) and (a[i,j]=a[i-3,j+3]) and (a[i,j]=a[i-4,j+4]) and (a[i,j]>0) then
begin
b[i,j]:=-20;
b[i-1,j+1]:=-20;
b[i-2,j+2]:=-20;
b[i-3,j+3]:=-20;
b[i-4,j+4]:=-20;
end;
Для подальшого пошуку шляху допустимих крокiв, необхiдно зробити очищення масиву:
begin
for i:=0 to 8 do
for j:=0 to 8 do
b[i,j]:=0;
TempX:=x;
TempY:=y;
TempZ:=a[x,y];
BALLClick:=true;
FindZero(x,y);
end;
Також на рисунку 3.1 було розроблено блок-схему алгоритму роботи програми.
Рисунок 3.1 - Блок-схема алгоритму роботи програми
4 IНСТРУКЦIЯ КОРИСТУВАЧА
Пiсля запуску програми бачимо основне робоче вiкно.
Рисунок 4.1- Основне робоче вiкно програми
В верхньому лiвому кутку знаходиться емблема гри, пiсля неї написано iм’я автора програми. А в правому верхньому кутку ми маємо 3 кнопки, а саме: звернути програму, вiдкрити форму на повний екран та закрити програму.
Посерединi знаходиться iгрове поле 9х9 клiтинок. Зпочатку гри алгоритм додає 3 довiльнi кульки в довiльнi клiтинки.
Пiд iгровим полем маємо кнопку “Новая игра”, що дозволяє почати гру спочатку, обнуливши всi параметри.
Информация о работе Гра Lines на мовi C++. Логiчна гра «Lines»