Курсова робота
Розробка гри “Відбивання кульки”
Завдання_________________________________________________________2
Зміст____________________________________________________________3
Вступ___________________________________________________________ 4
1. Розробка і обґрунтування технічного завдання______________6
1.1. Вимоги користувача___________________________________6
1.2. Вимоги до програмної реалізації________________________ 6
1.3 Функціональні можливості програми_____________________ 7
1.4. Можливі зміни програми з метою вдосконалення__________7
1.5. Варіантний аналіз і вибір методу вирішення основної задачі_ 7
2. Розробка структури програмної системи___________________8
2.1. Початок загального алгоритму вирішення задачі___________8
2.2.Структурні зв’язки між функціями програми______________9
3. Програмна реалізація___________________________________ 9
4. Тестування і перевірка програми________________________ 10
4.1. Розробка тестів_______________________________________10
4.2. Аналіз результатів роботи програми_____________________10
Висновки ____________________________________________11
Список використаної літератури_________________________12
Додатки______________________________________________13
Додаток А. Текст програми гри “Відбивання кульки”
(Kurs.cpp)________________________________________________14
Додаток Б. Вікно програми________________________________26
Вступ
Розвиток обчислювальної техніки супроводжується створенням нових і вдосконаленням існуючих мов програмування—засобів спілкування програмістів з ЕОМ. Під мовою програмування розуміють правила подання даних і запису алгоритмів їх обробки, що автоматично виконуються ЕОМ. У більш абстрактному вигляді, – це засіб створення програмних моделей об’єктів і явищ зовнішнього світу. На сьогодні вже створено десятки різних мов (як примітивних, так і близьких до мови людини).
Їх розвиток невпинно йшов від першої мови асемблера до мов високого рівня і до систем автоматизованого проектування. Під час розробки мов програмування за мету ставилося розробити мову, яка могла б виконувати всі необхідні для роботи функції і при цьому не була б складною у використанні.
З часом мови програмування ставали все ефективнішими та зрозумілими навіть для рядових користувачів. За їх допомогою стало можливим одним рядком описувати функції, для опису яких мовами молодших поколінь потрібно було б сотні-тисячі рядків початкового коду.
C++ – універсальна мова програмування, що належить до високорівневих, трансльованих, об’єктно-орієнтованих мов. Була розроблена Бьярном Страуструпому 1983 році. Базується на мові Сі. У 1990-х роках С++ стала однією з найуживаніших мов програмування загального призначення.
Нововведенням С++ в порівнянні з С є: підтримка об’єктно-орієнтованого програмування через класи, підтримка узагальненого програмування через шаблони, доповнення до стандартної бібліотеки, додаткові типи даних, виключень, простору імен, вбудовувані функції, посилання і оператори керування вільно розподілюваною пам’яттю.
Мова С++ має достатньо шиpокi гpафiчнi можливостi. Всi необхiднi визначення для графiчного модуля мови С++ дано в файлi graphics.h . При виборi вiдповiдного режиму вiн повинен бути включеним в програму за допомогою директиви #include<graphics.h>, а перед використанням графічних функцій повинна бути проініціалізована графічна система (вказаний графічний драйвер та режим його роботи).
1 Розробка і обґрунтування технічного завдання
1.1 Вимоги користувача
Необхідно розробити програму, що відтворює гру “Відбивання кульки”, в якій приймають участь двоє гравців.
Після запуску програми на екрані повинне з’явитися меню, з пунктами для початку гри, виведення підказки, інформації про автора гри та для виходу з меню.
Пункти меню:
– “Нова гра” – запуск гри. Після натискання даної клавіші у робочому вікні з’являється одне за одним меню для вибору кількості ігор (партій) (3, 5, 10) та швидкості руху кульки (3 швидкості), а за ними і ігрове поле. Ігрове поле розділено на дві частини. Зліва та справа присутні лопатки гравців у вигляді прямокутників для відбивання кульки. Знизу ведеться рахунок вдалих ударів для кожного гравця;
– „Допомога” – виводить список клавіш, які використовуються у грі;
– „Про автора” – виводить інформацію про розробника даної програми;
– „Вихід” – дозволяє вийти з програми після її завершення.
1.2. Вимоги до програмної реалізації
Програма повинна відповідати вимогам користувача.
Гра програмується на мові С++. Програміст може використовувати стандартні функції даної мови програмування, а також створювати свої власні, підключати заголовочні файли даного компілятора.
Програма має бути реалізована графічно. Вибір відповідних пунктів меню здійснюється за допомогою клавіш курсора та клавіші ENTER. Програма має витримувати усі тести користувача. На кожній сторінці повинна бути доповнена коментарями.
Програмний комплекс повинен містити стандартні модулі, а також модулі користувача (за наявності), процедури і функції користувача.
Програма повинна відтворювати гру “Відбивання кульки”.
1.3 Функціональні можливості програми
В програмі міститься меню, до пунктів якого можна звертатися у довільному порядку. Вибір конкретного пункту здійснюється за допомогою клавіш курсору та клавіші ENTER. Є можливість вибору кількості партій та швидкості руху кульки для ускладнення гри. За вдалі удари очки нараховуються гравцю, за промахи – супернику. Після того, як сума очок досягає обраної кількості партій, визначається переможець.
1.4 Можливі варіанти зміни та вдосконалення програми
Для зміни реалізації основної задачі можна внести зміни у функції new_game(), speed(), num(). Наприклад, для зміни інтервалу можливих швидкостей можна змінити параметр функції delay(), що використовується в new_game() для затримки руху кульки, а також розширити можливі варіанти вибору швидкостей у меню з функції speed(). У функції num() можливо збільшити кількість партій. Можна також змінити в new_game() діаметр кульки, розміри лопаток, швидкість їх руху тощо.
aftvin
1.5 Варіантний аналіз і вибір методу вирішення основної задачі
При розробці даної курсової роботи, основною задачею було зобразити рух об’єкта (кульки), що рухається по полю, відбиваючись від стінок та лопаток гравців, а також здійснення управління самими лопатками доверху та вниз.
Для цього були розроблені клас point (клас точки на екрані) та клас spot(для роботи з плямою на екрані), що наслідує компоненти класу point: функції voidshow() – функція зображення плями на екрані, voidhide() – функція прибирання плями з екрану, та функція voidmove(intxn, intyn) – переміщення зображення.
voidshow() – функція, що малює коло, заповнюєїї кольором та запам’ятовує його бітовий образ в пам’яті;
voidhide() – стирає зображення з екрану;
voidmove(intxn, intyn) – містить в собі функції hide() та show(). Після стирання зображення змінює координати центру плями та виводитьїї у новому місці з центром у точці (xn, yn).
Аналогічно до процедур роботи з плямою були створені процедури для роботи з прямокутниками (лопатками): void showr() – малювання прямокутника;void hider() – процедура стирання прямокутника;
voidmover(int xn, int yn) – переміщення прямокутника, де xn, yn – координати його верхнього лівого кута в новій позиції.
Функція new_game() об’єднує роботу всіх вище переглянутих функцій. Основною задачею цієї функції є узгодження роботи всіх інших функцій і перехоплення і оброблення нажатих користувачем клавіш.
2. Розробка структури програмної системи
2.1.Початок загального алгоритму вирішення задачі
1. Початок;
2. Ініціалізація і об’явлення змінних;
3. Ініціалізація графіки;
4. Виведення на екран головного меню гри;
5. Перевіряємо, яка кнопка натиснута:
Якщо натискаємо кнопку “Нова гра”, викликається функція new_game(), а в ній викликаються одна за одною функції num() (повертає значення кількості ігор), speed() (повертає значення швидкості), після завершення двох останніх функцій починається сама гра;
При натисканні кнопки “Допомога” викликається функція help() з підказкою про використання клавіш у грі;
Якщо натиснута кнопка “Про автора”, то запускається функція about(), яка виводить прізвище, імя розробника програми та деяку інформацію про нього;
Якщо ж натиснути кнопку (Вихід), це приведе до виходу з програми.
6. Кінець.
2.2.Структурні зв’язки між функціями програми
На початку програми робимо доступними бібліотеки з допомогою заголовних файлів: graphics.h; conio.h; stdlib.h; dos.h. Потім описуємо функції і підключаємо графічний режим.
Далі йде виклик функції menu(). Виводиться головне меню гри з чотирма кнопками: 1.Нова гра, 2.Допомога, 3.Про автора, 4.Вихід.
При виборі 1-го пункту запускається функція new_game(), яка виконує головне завдання. В ній викликаються функції num() ispeed(), після чого на екран виводиться ігрове поле, малюється в центрі кулька, лінія, що розділяє поле навпіл, два прямокутника по бокам. І після натиснення ENTER кулька починає рухатися по полю, а гравці повинні керувати лопатками та відбивати її.
При натисканні кнопки 2 спрацьовує функція help().
Якщо натиснута кнопка 3, то спрацьовує функція about(), яка при використанні стандартних функцій графічної бібліотеки: setcolor(), outtextxy(), виводить інформацію, тобто прізвище, імя, та номер групи розробника даної програми.
Коли натиснута кнопка 4,командою break переривається цикл перевірки і програма закінчує свою роботу.
Директива #include<…> призначена для включення в текст програми тексту файла із каталогу “заголовочних файлів”, що постачаються разом зі стандартними бібліотеками компілятора. На початку програми відбувається
підключення бібліотек graphics.h; conio.h; stdlib.h; dos.h.
graphics.h – використовується для графічної реалізації програми;
stdlib.h – включений в програму для виклику стандартних бібліотечних функцій randomize(), itoa(), random();
conio.h – для стандартної функції getch()та kbhit();