Гра Lines на мовi C++. Логiчна гра «Lines»
ПЕРЕЛІК СКОРОЧЕНЬ, СИМВОЛІВ ТА СПЕЦІАЛЬНИХ ТЕРМІНІВ
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 параметри.
Для того, щоб зробити крок, необхiдно натиснути на бажаєму кульку, а потiм натиснути на клiтинку, в яку потрiбно її перенести.
Пicля кожного кроку на iгрове поле буде додаватися по 3 довiльнi кульки. Кульки не додаються тiльки тодi, коли за теперiшнiй хiд було складено 5 i бiльше кульок в ряд.
Рисунок 4.2 -Поява iгрових кульок пiсля ходу
Основна цiль гри – набрати якомога бiльше балiв, при наявностi якомога меньше кульок.
На рисунку 4.3 бачимо, що кiлькiсть кульок – 21, а кiлькiсть балiв – 0. Але вже на рисунку 4.4 мы бачимо, що кiлькiсть кульок – 16, а балiв вже 100. Тобто, склавши лiнiю з кульок однакового кольору, вони зникли, тим самим звiльнивши мiсце на iгровому полi i додавши бали.
Рисунок 4.3 До складеної лiнiї Рисунок 4.4 Пicля складеної лiнiї
Гра вважається програною, якщо все iгрове поле буде зайнято кульками, тобто їх число буде – 81.
Рисунок 4.5 Програна гра
Але пiсля натискання кнопки “ОК”, програма почне гру спочатку.
Рисунок 4.6 Нова гра пiсля програшу
5 РОЗРАХУНКИ ТА МАТЕРIАЛИ, ЩО
ПIДТВЕРДЖУЮТЬ НАДIЙНIСТЬ ТА
На сьогодні найсерйозніша проблема в області обробки даних - це проблема програмного забезпечення.
Програмне забезпечення — це сукупність програм системи обробки інформації і програмних документів, необхідних для їх експлуатації.
Існує й інше, більш просте визначення, за яким програмне забезпечення являє собою сукупність комп'ютерних інструкцій. Воно охоплює програми, підпрограми (розділи програми) і дані. Таким чином, програмне забезпечення вказує комп'ютеру, що робити, як, коли, в якій послідовності і як часто. Нерідко програмне забезпечення називають просто програмою.
Надійність програмного забезпечення - здатність програмного продукту безвідмовно виконувати певні функції при заданих умовах протягом заданого періоду часу з досить великою імовірністю. Ступінь надійності характеризується імовірністю роботи програмного продукту без відмови протягом певного періоду часу. Надійність програмного забезпечення набагато важливіше інших його характеристик, наприклад, часу виконання.
У теорії надійності існують свої основні поняття. До них, в першу чергу, відносяться поняття надійності. Надійність є властивість апаратури зберігати свої основні характеристики в певних межах за даних умов експлуатації. Наведене визначення надійності належить до технічних понять, але в дещо зміненій формі воно може бути використано в інших областях, в тому числі в теорії інформації.
Основними причинами, шо викликають порушення нормального функціонування ПЗ є:
- помилки, приховані в самій програмі;
- спотворення вхідної
- невірні дії користувача;
- несправність апаратних
засобів інформаційної системи,
на якій реалізується
Таким чином, основними показниками надійності програмного забезпечення є:
- імовірність безвідмовної
- імовірність відмови програми q(t)або імовірність події відмови ПЗ до моменту часу t;
- інтенсивність відмов програми l(t);
- середнє напрацювання програми на відмову Т, що є математичним очікуванням тимчасового інтервалу між послідовними відмовами.
Для розрахунки програми, я обрав статичну модель Мiллса, яка має двi частини. Використання цієї моделі передбачає необхідність перед початком тестуванням штучно вносити в програму деяку кількість відомих помилок. Помилки вносяться випадковим чином і фіксуються. Передбачається, що всі помилки (як природні, так і штучні) мають рівну імовірність бути знайденими в процесі тестування. Програма тестується протягом деякого часу, і збирається статистика про виявлені помилки. Тоді, початкове число помилок N в програмі можна оцінити за формулою Міллса :
Де N - первинна кількість помилок в програмі, S - кількість штучно внесених помилок, n - число знайдених власних помилок, v – число знайдених штучних помилок.
Зробимо перевiрку за першою частиною моделi. В програму було внесено 10 штучних помилок. Пiд час тривалого тестування, було знайдено уci 10 штучних помилок i жодної власної. Отже, маючи формулу, зробимо розрухунки:
Тобто, кiлькiсть первинних помилок у програмi – 0.
Друга частина моделі пов'язана з перевіркою гіпотези про N. Наприклад, вважається, що в програмі спочатку К помилок. Та внесено штучно S помилок і дана програма тестується до тих пір, поки всі штучно внесені помилки не будуть виявлені. Нехай при цьому виявлено n власних помилок програми. Імовірність, що в програмі спочатку було К помилок, можна розрахувати за співвідношенням:
Тодi маємо,
Таким чином, з імовірністю 0,91 можна стверджувати, що в програмі немає помилок.
Отже, надiйнiсть програми – 91%.
ВИСНОВКИ
В даній курсовій роботі була розроблена логiчна гра «Lines». Середовищем програмування обрана Delphi – це об’єктно-орієнтована мова програмування високого рівня. Гру написано за допомогою багатьох процедур та функцiй, також присутнi математичнi елементи, такi як, наприклад, масиви. Для покращення розуміння була розроблена спеціальна інструкція користувача, в якій є пояснення до гри. Гра розрахована на аудиторію різновікової групи людей, тому будь-якi обмеження вiдсутнi.
З курсової роботи можна зробити висновки, що за допомогою мови програмування Delphi можна розробити програми рiзного ступеню важкостi. А те, що мова є об’єктно-орієнтованою значно полегшує процес створення програм.
СПИСОК ЛIТЕРАТУРИ
1. Зубов, А. Программирование на Delphi. Трюки и эффекты / А. Зубов.– СПб: Питер, 2005. – 396 с.
2. Фаронов, В.В. Delphi. Программирование на языке высокого уровня / В. Фаронов.– СПб: Питер, 2004. – 640 с.
3. А. Хомоненко, В. Гофман, Е. Мещеряков, В. Никифоров. Delphi7. Наиболее полное руководство – СПб: БХВ, 2008. – 1216 с.
4. И. Ю. Баженова. Delphi 7. Самоучитель программиста - Издательство: КУДИЦ-Образ, 2003, 448с.
5.Михаил Фленов. Delphi 2005. Секреты программирования - СПб.:БХВ-Петербург, 2006, 272 с.

- Граажданские правоотношения
- Грабеж
- Грабеж
- Грабеж
- Грабеж
- Грабёж
- Грабёж
- Готовой продукция: порядок учёта и раскрытия информации в бухгалтерской (финансовой) отчётности
- Готский язык и готы. Судьба народа и языка
- Готування до злочину
- Готування до злочину
- Готування до злочину та його види
- Гоударственное регулирование инновационной деятельности
- Гоударство и экономика