Гра Lines на мовi C++. Логiчна гра «Lines»

Автор работы: Пользователь скрыл имя, 17 Марта 2014 в 00:25, курсовая работа

Краткое описание

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

Прикрепленные файлы: 1 файл

Osnova.docx

— 158.48 Кб (Скачать документ)

 

ПЕРЕЛІК СКОРОЧЕНЬ, СИМВОЛІВ ТА СПЕЦІАЛЬНИХ ТЕРМІНІВ

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:boolean; - функцiя повертає значення true якщо кульки були видаленi;

procedureNewGameForSer; - процедура для початку нової гри;

procedureRandomBALL; - процедура для появи нових шарiв;

procedureFindZero(x1,y1:integer); - процедура для пошуку допустимих ходiв.

Для процедур також потрiбно вказати змiннi. Так, наприклад, виглядає код готової процедури початку нової гри:

procedureNewGameForSer;

var x,y:integer;

begin

 

Form1.Label1.Caption:='Очки: 0';

BALLClick:=false;

KolvoStep:=0;

Dollar:=0;

Form1.Imagelist1.GetBitmap(0,BMP);

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,y*32,BMP);

end;

Таким чином, при натисненi кнопки обнуляються всi значення, в тому числi кiлькiсть балiв i кiлькiсть зроблених крокiв.

if KolvoStep=81 thenbeginShowMessage('GameOver'); NewGameForSer; -

вданнiйчастинi коду реалiзується умовний оператор. Тобто, якщо кiлькiсть кульок стане 81, тодi програма виведе повiдомлення “GameOver” i гру буде завершено. А при натиску кнокпи “ОК”, гра почнеться спочатку.

Для того щоб кульки видалялися з поля необхiдно прописати слiдуючий код:

functionDeleteBALLLine:boolean;

vari,j:integer;

begin

DeleteBALLLine:=false;

Form1.Imagelist1.GetBitmap(0,BMP);

Тепер, для правильного видалення кульок необх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»