Смекни!
smekni.com

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

Зміст

Вступ…………………………………………………………....3.

1.ТЕОРЕТИЧНА ЧАСТИНА………………………………….5.

1.1.Постановка задачі………………………………………....5.

2.ПРАКТИЧНА ЧАСТИНА…………………………………...6.

2.1.Архітектура програми…………………………………….6.

2.2.Опис програми………………………………………….....8.

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

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

ВИСНОВКИ……………………………………………………18.

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ…………………18.

ДОДАТКИ……………………………………………………...19.

Вступ

Центральним поняттям програмування є, безперечно , поняття

алгоритму. З нього починається робота над програмою і від якості алгоритму залежить її успішне створення .Тому вміння програмувати в значній мірі означає розробляти хороші алгоритми і застосовувати вже відомі.

На сьогодні існує велика кількість різноманітних мов програмування, кожна з яких має свої певні переваги та недоліки. В цьому розмаїтті не завжди легко зробити свій вибір на користь якоїсь певної мови програмування .

Для реалізації поставленої задачі вибрано середовище TurboPascal. Алгоритмічна мова Pascal була створена Н.Віртом на початку 70-х років. Завдяки зусиллям розробників ця мова програмування стала потужним інструментом професійних програмістів, не втративши простоти і ясності, властивих цій мові від народження .

Розробник системи TurboPascal – фірма BorlandInternational виникла в 1984 році і за порівняно короткий час неодноразово дивувала користувачів персональних ЕОМ своїми Turbo системами. Було випущено кілька версій Turbo Pascal:3.0,4.0,5.0,5.5,6.0,7.0, Pascal for Windows, Borland Pascal.

Головні особливості середовища TurboPascal:

► широкий спектр типів даних, можливість обробки рядкових та структурних типів даних;

► достатній набір операторів управління розгалуженнями та циклами;

► добре розвинутий апарат підпрограм та зручні конструкції роботи з файлами;

► великі можливості управління усіма ресурсами ПЕОМ;

► різноманітні варіанти стикування з мовою Асемблера;

► підтримка ідей об’єктно—орієнтованого програмування (ООП).

Саме з огляду на ці особливості програмна реалізація курсового проекту було здійснено в середовищі TurboPascal.

Курсовий проект складається зі вступу , двох розділів , висновків , списку використаної літератури , графічної частини та додатків. Текст пояснювальної записки набрано та розрдуковано з використанням текстового редактора Word. Графічна частина виконана з допомогою графічного редактора Visio.

1.Теоретична частина.

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

Розробка програми-ігри «Змійка» для курсового проекту. Ідея програми полягає в тому, щоб «змія» могла б переміщатися по екрану за допомогою стрілок ←, ↑, →, ↓ та при набирані очок збільшувалась у довжину, при зіткненні зі своїм «хвостом» завершувалася гра. При завершені гри повинна виводитись підказка – «Завершити гру Y/N?» при натисканні клавіші «Y» гра просить ввести ваше ім’я та записує результати гри під введеним ім’ям в текстовий файл Result.dat. При натисканні клавіші «N» гра розпочинається з початку.

Гра повинна мати меню, в якому вибирається рівень складності гри, або подивитися результати попередніх ігор.

Мета написання курсового проекту — розробкапрограми-гри «Змійка».

2.Практична частина.

2.1.Архітектура програми

Для реалізації поставленої задачі розроблено програму ZMEJKA.PAS (лістинг програми представлено в додатку 3).

Програма складається з головного блоку та процедур: Menu, Ramka, Symbol, Rezultat, OverRes, GoUp, GoDown, DrawSnake, AddBonus, Kill, Move та модуля CRT.TPU, який забезпечує роботу з клавіатурою та екраном. Модуль CRT.TPU входить в стандартний набір модулів компілятора BorlandPascal 7.0.

Запуск програми здійснити двома способами:

▄ з головного меню інтегрованого середовища BorlandPascal шляхом вибору опції Run (попередньо програма повинна бути завантажена в ОП –F10, File-Open-ZMEJKA.PAS);

▄ з середовища ОС WindowsXPServicesPack 2 шляхом запуску ZMEJKA.EXE.

Програма використовує одинадцять процедур: Menu, Ramka, Symbol, Rezultat, OverRes, GoUp, GoDown, DrawSnake, AddBonus, Kill, Move.

Процедура Menu - виводить на дисплей меню, котре пропонує користувачеві вибір складності програми-гри та перегляду результатів попередніх ігор. Вибрати пункт меню можна стрілочками клавіатури -↓,↑:

VERY SLOW

SLOW

MEDIUM

HIGH

VERY HIGH

RESULT

При натисканні стрілочки ↑ або ↓ виконується процедура – GoUpабо GoDown. Ці процедури дозволяють переходити по пунктам меню вверх або вниз.

Процедура Ramka – виводить написи меню та малює навколо них рамку.

Процедура Symbol – малює символ на заданій позиції.

Процедура Rezultat – після закінчення гри ця процедура записує результат гри у файл Result.dat, якщо цього файлу не існує він створюється в тій же папці з програмою-грою.

Процедура OverRes – виводить результат з файлу Result.dat на екран, якщо цього файлу не існує, то виводиться надпис «Результатів немає».

Процедура DrawSnake – малює змійку на екрані.

Процедура AddBonus – малює на екрані символи «@» - це символи(бонуси), які «змійка» повинна збирати та поповнює очки.

Процедура Kill – знищує «змійку». Змійка знищується в разу зіткнення зі своїм «хвостом» або при натисканні клавіші Esc.

Процедура Move – задає координати «змійки».

Головний блок програми задає значення змінним, задає початкові координати «змійки» та визначає, яка клавіша керування клавіатурою була натиснута, щоб задати напрямок «змійки».

Блок –схема головного блоку програми представлена в додатку 1.

2.2.Опис програми

Програма складена , відкомпільована і відлагоджена в середовищі BolardPascal 7.0.

На початку програми, відповідно до вимог технології програмування, знаходиться вступний коментар до програми , а решта операторів програми мають таке призначення:

Оператор Призначення оператора

001 Заголовок програми

002 Підключення зовнішніх модулів Crt( керування дисплеєм та

клавіатурою)

003 задає глобальну мітку

004-008 Описує тип запис

009-010 Описує тип файл запису

011-020 Описання глобальних змінних

021-046 Процедура Ramka

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

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

023-024,042,

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

025,027,029,

031,033,035,

037,039,041,

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

026,028,030,

032,034,036,

038,040,043 Вивід рамки на екран

046 Кінець процедури Ramka

047Заголовок процедури Symbol

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

049 Встановлення координатів курсора клавіатури

050 Виведення символа

051 Встановлення курсора клавіатури на початок першої стрічки

052 Закінчення процедури Symbol

053 Загловок процедури Rezultat

054Описання змінних в процедурі

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

056 Директива компілятора, вона вимикає автоматичний контроль помилок I/O

057 Відкриття файлу на запис

058 Директива компілятора, вмикає автоматичний контроль помилок I/O

059 Перевірка чи існує файл, якщо ні, то створюємо його

060 Очистка екрану

061 Встановлення координатів курсора клавіатури

062 Задає зелений колір тексту

063 Виведення тектсу

064 Запис введенного тексту в змінну типу запис

065-066 Присвоєння значень змінним типу запис

067 Встановлення курсора клавіатури в текстовому файлі на кінець

068 Запис одного файлу в інший

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

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

071 Вихід з програми

072 Закінчення процедури Rezultat

073 Заголовок процедури OverRes

074-075 Описання змінних в процедурі

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

077 Очистка екрану

078 Директива компілятора, вона вимикає автоматичний контроль помилок I/O

079 Відкриття файлу на запис

080 Директива компілятора, вмикає автоматичний контроль помилок I/O

081 Перевірка чи існує файл

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

083 Задає зелений колір тексту

084 Виведення тексту

085 Зарезервоване слово «інакше», якщо файл існує

086 Початок оператора

087 Задає зелений колір тексту

088 Присвоєння значення змінній

089 Цикл з передумовою, виконується поки не достигне кінця файлу

090 Читання одного файлу в інший

091-093 Задає координати курсора клавіатури та виводить значення змінних

094 Присвоєння зачення змінній

095 Кінець циклу з передумовою

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

097 Закінчення умовного оператора «інакше»

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

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

100 Закінчення процедури OverRes

101 Заголовок процедури GoUp

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

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

104 Зменшуємо значення змінної MenuSelectна одиницю

105 Умова, якщо MenuSelect<1 , то MenuSelect = 6

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

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

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

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

112 Задає координати курсору клавіатури (1,1)

113 Закінчення процедури GoUp

114 Заголовок процедури GoDown

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

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

117 Збільшуємо на одиницю значення змінної MenuSelect

118 Умова, якщо MenuSelect>6 , то MenuSelect= 1

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

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

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

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

125 Задає координати курсору клавіатури (1,1)

126 Закінчення процедури GoDown

127 Заголовок процедури Menu

128 Опис мітки

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

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

132 Мітка

133 Присвоєння значення змінній. Задає довжину змійки

134 Присвоєння значення змінній. Початковий напрямок змійки

135-136 Присвоєння значення змінній. Координати голови змійки

137 Присвоєння значення змінній. Очки

138 Присвоєння значення змінній. Координати курсору клавіатури