Смекни!
smekni.com

Программирование игры Змейка (стр. 2 из 3)

139 Очищаємо екран

140 Звернення до процедури Ramkaз заданими параметрами

141-142 Задає коліри тексту та фону екрану

143 Задає координати курсору клавіатури

144 Виводить текст, який міститься в масиві стрічок MenuItem[MenuSelect]

145-146 Задає коліри тексту та фону екрану

147 Задає координати курсору клавіатури

148- цикл с постумовою. Вмістить в себе умову вибору, яка викконує процедуру - GoUp, якщо була натиснута клавіша клавіатури - ↑, або процедуру GoDown, - якщо була натиснута клавіша клавіатури -↓. Цикл завершується, тоді коли - 154 будуть натиснути клавіші Enterабо Esc.

155 Перевіряє, якщо була натиснута клавіша Esc, відбувається вихід з програми

156- Умова вибору. Перевіряє знащення змінної MenuSelect, та задає за цим

163 значенням складність гри.

164 Очищує екран

165 Закінчення процедури Menu

166 Заголовок процедури DrawSnake

167 Початок тіла процедури

168,180 Задає колір тексту

169,171,173,

175,177 Задає координати курсору клавіатури

170,172,174,

176,178 Виводить текст

179 Виводить символ змійки в початку стрічки

181-183 Цикл малює змійку

184 Задає колір тексту

185-186 Малює символи бонусу «@»

187 Задає колір тексту

188 Задає координати курсору клавіатури

189 Закінчення процедури DrawSnake

190 Заголовок процедури AddBonus

191 Опис мітки

192-193 Описує змінні процедури

194 Початок тіла процедури

195 Мітка

196 Задає змінній нульове значення

197-198 Задає координати бонусу

199-204 Цикли, перевіряють, щоб бонуси були розміщенні не на самій змійці

205 Задає колір тексту

206 Задає координати курсору клавіатури

207 Закінчення процедури AddBonus

208 Заголовок процедури Kill

209-210 Опис змінних процедури

211 Опис мітки

212 Початок тіла процедури

213-218 Присвоєння масиву символів значення

219 Задає колір тексту

220-223 Цикл, малює мертву змійку

224 Мітка

225 Очищує екран

226,237 Задає колір тексту

227,229,231,

233,235,238,

240,242,244,

246,248 Задає координати курсору клавіатури

228, 230,232,

234,236,239,

241,243,245,

247 Виводить на екран текст

249 Чекає на натиснуту клавішу клавіатури

250 Умова вибору, якщо натиснута клавіша ‘Y’, то продовжуємо гру, якщо була - натиснута клавіша ‘N’, то програма запросить ввести ім’я і запишить - --- 254 результати у файл Result.dat

255 Задає колір тексту

256 Задає координати курсору клавіатури

257 Закінчення процедури Kill

258 Заголовок процедури Move

259 Початок тіла процедури

260 Малює символ пробілу

261-270 Умова вибору. Визначає направлення змійки за натиснутою клавішею

271- Умови.Якщо змійка виповзає за межі екрану, переводится на початок

274 стрічки.

275- Цикл перевірки, чи «вкусила» змійка себе за хвіст,якщо так, виконується 278 процедра Kill

279- Цикл перевірки, чи «з’їла» змійка бонус, якщо так, то змійка збільшується в 287 довжині на одиницю, та збільшуються очки

288-294 Цикл. Щоб змійка не «розірвала» свій хвіст.

295 Виконується процедура DrawSnake

296 Задає колір тексту

297 Задає координати курсору клавіатури

298 Закінчення процедури Move

299 Початок тіла основної програми

300 Зв’язує файлову змінну з файлом на диску

301 Задає режим відображення тексту на екрані

302 Ініціює фунцію случайних чисел

303 Очищує екран

304 Цикл. Виводить бонуси на екран перед початком гри

305-310 Задає масиву стрічок значення.

311 Задає початкове значення змінній MenuSelect

312 Очищує екран

313 Виконується процедураMenu

314-318 Цикл, задає початкові координати змійки,щоб вона не «розбіглася»

319 Мітка

320- Цикл з передумовою, перевіряє, яка клавіша була натиснута,та задає

328 напрямок змійки

329,333 Задається колір тексту

330,334 Задаються координати курсору клавіатури

331 Затримка DTime-секунд

332 Виконується процедура Move

335 Закінчення циклу 320

336 Виконується процедура Kill

337 Перехід на мітку

338 Закриття файлу

339 Закінчення основної програм

Лістінг програми представлений в додатку 2, блок—схему головного блоку програми наведено в додатку 1.

2.3Контрольний приклад

та аналіз результатів машинного експерименту.

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

Процес відладки включає:

- створення сукупності тестових еталонних значень , яким програма повинна відповідати;

- тестування програми з виконанням об’єктного коду і з різними рівнями деталізації: детерміноване , стохастичне та тестування в реальномумасштабі часу;

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

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

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

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

МЕНЮ гри Змійка

Процес гри

Після «смерті» змійки

Введення ім’я для запису результату у файл RESULT.DAT

Перегляд раніше записаних результатів

Розроблена програма-гра дає можливість добре відпочити після тривалого робочого дня.

Висновки.

Розв’язування задач обчислювального характеру з використанням персональних комп’ютерів має велике практичне значення, оскільки дає можливість значно економити час при виконанні простих , але громістких обчислень. Використання з цією метою готових пакетів прикладних програм для виконання математичних обчислень має певні вади. Ліцензовані пакети прикладних програм мають високу вартість і достатньо високу складність експлуатації. Тому їх використання для розв’язування нескладних задач (а саме такою є сортування масиву) є недоцільним. Надзвичайно важливо вміти самостійно складати прості програми для розв’язування задач обчислювального характеру.

В даному курсовому проекті розроблено і описано програму-гру «Змійка». Для розробки програми вибрано мову Паскаль (середовище BorlandPascal) . Програма розроблена із застосуванням методики процедурного проектування.

Програма відкомпільована з отриманням ехе-файла та відладжена.

Вибір алгоритмічної мови Паскаль для реалізації постановленої задачі повністю виправдав себе.

Список використаної літератури:

1. Т.В. Ковалюк, видавнича група «BHV», 2005- «ОСНОВИ ПРОГРАММУВАННЯ».

ДОДАТКИ


Додаток 2.

Лістинг програми.

001}Program ZMEjKA;

002}uses CRT;

003}label 1;

004}type result=record

005} scor:integer;

006} name:string[15];

007} len:integer;

008} end;

009} res=file of result;

010}

Var

011} f: res;

012}SnakeX,SnakeY: array[1..4000] of longint;

013}HeadX,HeadY: longint;

014}BonusX,BonusY: array[1..40] of longint;

015}DeathX,DeathY: array[1..30] of longint;

016}Dlina,Naprav: longint;

017}key: char;

018}i,score: integer;

019}MenuItem: array[1..6] of string;

020}DTime,ScorePlus,ScoreMinus,MenuSelect,x,y: integer;

{-----------------------------------------------------}

021}Procedure Ramka(x,y:integer);

022}Begin

023}TextColor(2);

024} TextBackground(0);

025}gotoxy(x,y);

026} writeln('╔═ ЗМЕЙКА 0.1 ══════╗');

027} gotoxy(x,y+1);

028} writeln('║ VERY SLOW ║');

029} gotoxy(x,y+2);

030 } writeln('║ SLOW ║');

031 } gotoxy(x,y+3);

032 } writeln('║ MEDIUM ║');

033 } gotoxy(x,y+4);

034 } writeln('║ HIGH ║');

035 } gotoxy(x,y+5);

036 } writeln('║ VERY HIGH ║');

037 } gotoxy(x,y+6);

038 }writeln('║ RESULT ║');

039 }gotoxy(x,y+7);

040 }writeln('╚═══════════════════╝');

041 }gotoxy(x,y+8);

042 }textcolor(14);

043 }writeln(' Виберiть рiвень ');

044 }textcolor(0);

045 }gotoxy(1,1);

046 }End;

{------------------------------------------------------}

047 } Procedure Symbol(x,y:integer; sym:char);

048 } Begin