WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Розробка гри “Відбивання кульки” - Курсова робота

Розробка гри “Відбивання кульки” - Курсова робота

екрані) та клас spot (для роботи з плямою на екрані), що наслідує компоненти класу point: функції void show() - функція зображення плями на екрані, void hide() - функція прибирання плями з екрану, та функція void move(int xn, int yn) - переміщення зображення.
void show() - функція, що малює коло, заповнює її кольором та запам'ятовує його бітовий образ в пам'яті;
void hide() - стирає зображення з екрану;
void move(int xn, int yn) - містить в собі функції hide() та show(). Після стирання зображення змінює координати центру плями та виводить її у новому місці з центром у точці (xn, yn).
Аналогічно до процедур роботи з плямою були створені процедури для роботи з прямокутниками (лопатками): void showr() - малювання прямокутника; void hider() - процедура стирання прямокутника;
void mover(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() i speed(), після чого на екран виводиться ігрове поле, малюється в центрі кулька, лінія, що розділяє поле навпіл, два прямокутника по бокам. І після натиснення ENTER кулька починає рухатися по полю, а гравці повинні керувати лопатками та відбивати її.
При натисканні кнопки 2 спрацьовує функція help().
Якщо натиснута кнопка 3, то спрацьовує функція about(), яка при використанні стандартних функцій графічної бібліотеки: setcolor(), outtextxy(), виводить інформацію, тобто прізвище, імя, та номер групи розробника даної програми.
Коли натиснута кнопка 4, командою break переривається цикл перевірки і програма закінчує свою роботу.
3. Програмна реалізація
Директива #include призначена для включення в текст програми тексту файла із каталогу "заголовочних файлів", що постачаються разом зі стандартними бібліотеками компілятора. На початку програми відбувається
підключення бібліотек graphics.h; conio.h; stdlib.h; dos.h.
graphics.h - використовується для графічної реалізації програми;
stdlib.h - включений в програму для виклику стандартних бібліотечних функцій randomize(), itoa(), random();
conio.h - для стандартної функції getch() та kbhit();
dos.h - для стандартної функції delay().
В головній функції програми int main() визиваються наступні функції:
initgraph(&dr, &mod,"") - ініціалізація графіки;
menu() - виклик головного меню гри;
closegraph() - закриває графічний режим і переводить систему в текстовий режим.
5. Тестування і перевірка програми
4.1. Розробка тестів
Тестування направлене на знаходження та виправлення помилок у програмах. Один з методів тестування базується на спостереженні за роботою програми. Відомо, що помилки у програмному забезпеченні мають схильність групуватися (принцип Парето). В програмі завжди є модулі, які є більш проблематичними, ніж інші. Для даної програми таким модулем є функція new_game(), що виконує в програмі провідну роль.
Отож, запустимо програму і будемо вести спостереження. При тестуванні нас цікавитимуть:
1. Чи є помилки у графічній реалізації;
2. Чи правильно відбивається кулька від стінок та лопаток;
3. Ситуація, коли кулька пролітає поза лопаткою: чи можемо ми не влучити і чи правильно ведеться рахунок. Для цього необхідно випробувати ряд випадків відбивання кульки в різних положеннях лопаток, а також, спеціально не влучити і впевнитись у тому, що супернику було нараховано очко на його рахунок.
4.2. Аналіз результатів роботи програми
Під час перевірки та тестування було проведено ряд тестів, які було описано вище, і в результаті вияснено, що програма працює більш-менш надійно і злагоджено, помилок виявлено не було.
Висновки
В результаті виконання даної курсової роботи засобами мови програмування С++ було розроблено програму, що реалізує гру "Відбивання кульки". Виконані всі умови розробки програми.
Під час розробки даного курсового проекту, мною було вдосконалені деякі навички програмування на мові С++.
Список використаної літератури
1. В.В. Подбельский. Язык С++. М.: Финансы и статистика, 2005.
2. Шилдт Г. Искусство программирования на С++. СПб.: БХВ-Петербург, 2005
3. htpp://www.codenet.ru/
ДОДАТКИ
Додаток А:
#include
#include
#include
#include
short num()//функцiя вибору кiлькостi iгор
{
int x,y,i,key;
x=212;y=77;
setcolor(BLUE);
setlinestyle(0,0,3);
rectangle(x,y,x+221,y+86);
rectangle(x+3,y+3,x+221-3,y+86-3);
circle(x+25,y+43,10);
settextstyle(0,HORIZ_DIR,2);
outtextxy(x+45,y+38,"3 гри");
outtextxy(x+46 ,y+39,"3 гри");
y=y+90;
rectangle(x,y,x+221,y+86);
rectangle(x+3,y+3,x+221-3,y+86-3);
circle(x+25,y+43,10);
outtextxy(x+45,y+38,"5 iгор");
outtextxy(x+46 ,y+39,"5 iгор");
y=y+90;
rectangle(x,y,x+221,y+86);
rectangle(x+3,y+3,x+221-3,y+86-3);
circle(x+25,y+43,10);
outtextxy(x+45,y+38,"10 iгор");
outtextxy(x+46 ,y+39,"10
Loading...

 
 

Цікаве