ДНІПРОПЕТРОВСЬКА ОБЛАСНА РАДАОБЛАСНИЙ КОМУНАЛЬНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД"ІНСТИТУТ ПІДПРИЄМНИЦТВА "СТРАТЕГІЯ"
КАФЕДРА КОМП’ЮТЕРНИХ ТА ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ
Курсова робота
З дисципліни “Основи програмування та алгоритмічні мови”
На тему “Розробка комп’ютерної гри «Змійка»”
Студенткагрупи П-07-51Кисельова Юлія
КерівникДевяткін Іван Вікторович
м. Жовті Води2009
ЗМІСТ
ВСТУП 3
1 ПОСТАНОВКА ЗАДАЧІ 4
1.1 Функції ініціалізації 4
1.2 Функції контролю 4
1.3 Графічні функції 4
2 ІНФОРМАЦІЙНЕ ЗАБЕЗПЕЧЕННЯ 5
3 АЛГОРИТМ РОЗВ’ЯЗАННЯ ЗАДАЧІ 6
4 ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ 7
ВИСНОВКИ 8
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 9
ВСТУП
В наш час комп’ютерна техніка розвивається швидкими темпами. Комп’ютери набули широкого використання у різних сферах діяльності людини. Ними користуються і для роботи, і для приємного дозвілля. Саме для розваг були створені відеоігри, які розвивалися так само швидко, як і інформаційні технології. Комп’ютерні ігри мають великий попит на ринку інформаційних технологій. А значить є «попит» на програмістів, які створюють ігри. Отже, написання програм для відеоігор є актуальною проблемою нашого часу.
Ціллю курсового проекту є написання відеогри “Змійка”. Суть цієї гри в наступному: по полю з перешкодами повзає змійка і їсть так звані “яблука”. Рівень закінчується коли змійка з’їдає певну кількість яблук. Якщо змійка, рухаючись, раптово вдариться головою об “камінь”, край поля чи наїде на себе, то на екрані з’являється повідомлення “GAME OVER”, що означає – “Гру закінчено”.
Для створення цієї гри було сформовано коло задач. По-перше, було визначено ряд функцій, які треба написати, щоб змійка могла рухатися, рости, вмирати і т.д. Було встановлено зв’язок між цими функціями. Другою задачею стало написання за допомогою мови програмування “С”, тих функцій, що були визначені у першій задачі. Останньою задачею стало об’єднання написаних файлів у проект.
До кола задач, які необхідно вирішити входить формулювання алгоритму роботи програми, формування інтерфейсу користувача, що передбачає ознайомлення зі схожими розробками і принципами їх реалізації, та власне написання вихідного коду, придатного для компіляції. Однією з цілей даної роботи є застосування на практиці набутих знань та певних практичних навичок у сфері програмування.
Розв’язавши всі вище перераховані задачі, очікується, що буде отримана готова гра, яка розрахована на роботу у графічному режимі.
1 ПОСТАНОВКА ЗАДАЧІ
У ході аналізу поставлених задач, що перераховані у попередньому пункті даної пояснювальної записки, було визначено необхідний набір основних та допоміжних функцій, які потрібні для реалізації цього проекту.
1.1 Функції ініціалізації
Необхідні для визначення усіх вхідних даних та встановлення режимів для коректної роботи програми. Це функції ініціалізації графічного режиму, ігрового поля та його об’єктів, таких як перешкоди, “яблука” та сама змійка.
1.2 Функції контролю
Відповідають за визначення поточного розташування об’єктів гри, порядок виконання необхідних дій в залежності від ситуації, зміну відповідних структур даних, що описують ці об’єкти. До них належать функції контролю руху змійки, функції перевірки на наявність перешкоди чи “яблука” на наступному кроці, функція зміни напрямку руху в залежності від натиснутої клавіші. Окрім аналізу гри в даний момент вони також перемальовують об’єкти на екрані згідно поточного стану.
1.3 Графічні функції
Їх задача полягає у створенні графічного інтерфейсу гри, а саме у виведенні на екран поля з перешкодами, змійки у її початковому положенні, “яблук”, спираючись на дані, що отримані від функцій ініціалізації.
2 ІНФОРМАЦІЙНЕ ЗАБЕЗПЕЧЕННЯ
Вхідною інформацією, що використовується для прийняття рішень програмою, є натискання клавіш керування.
Вихідною інформацією є повідомлення, що виникають при програші чи перемозі гравця.
3 АЛГОРИТМ РОЗВ’ЯЗАННЯ ЗАДАЧІ
Робота програми починається з того, що на екран виводиться вікно з грою. На екрані малюється вікно ігрового поля з перешкодами, «яблуками» та змійка. Елементом, що задає напрямок руху змійки є голова. По замовчуванню змійка починає рухатись вправо. Після натискання будь-якої з клавіш керування курсором, змійка рухається у заданому напрямку, зміщуючись з кожним кроком на одну клітину ігрового поля. Для пересування змійки не має необхідності постійно утримувати клавіші керування, так як працює таймер, який рухає змійку в заданому напрямку. Перед кожним кроком програма перевіряє вміст клітини, у яку гравець спрямовує змійку, та можливі наступні варіанти розвитку подій:
якщо клітина вільна, то кольором фону замальовується останній сегмент змійки, кольором змійки замальовується “попередня голова” та кольором голови малюється “нова голова” у даній клітині, що створює ефект руху.
якщо у клітині знаходиться яблуко, то все відбувається так само, як і у попередньому пункті. У разі з’їдання змійкою максимальної кількості яблук, на екрані з’являється повідомлення «Congratulations! You are winner! » і гра завершується.
якщо у клітині знаходиться камінь чи тіло змійки, або клітина у якій знаходиться голова змійки є крайньою клітиною ігрового поля, то гра завершується і з’являється повідомлення “GAME OVER”.
4 ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ
Функція InitializeSnake перевіряє наявність завантажених картинок. В разі їх відсутності з’являється повідомлення «Could not load image». В ній визначається розмір ігрового поля, розташування перешкод та яблук, початкове розташування змійки та її розмір.
Функція DrawField, DrawImage, OnPaint спираючись на дані з масиву малюють поле, змійку, та яблука на екрані.
Функція MoveTail переміщує тіло змійки згідно переміщення голови.
Функція MyTimerProc рухає змійку в заданому напрямку в залежності від клавіші, що була натиснута останньою, використовуючи параметр LastKey. Якщо клавіша не натиснута, то змійка продовжує рух у попередньому напрямку. Стан і код натиснутої клавіші передаються в якості параметра wParam, який поміщений у віртуальний код.
ВИСНОВКИ
Розв’язавши поставлені задачі було отримано результат у вигляді програмного продукту, що представляє собою гру “Змійка”. Дана гра є зручною для користування та доступною для розуміння будь-якому користувачеві.
Як і кожен програмний продукт, дана гра може бути модифікована та покращена. Наприклад, можна зробити щоб при кожному з’їданні яблука, розмір змійки збільшувався на одиницю. Для покращення гри можна зробити її більш складною (а значить і цікавішою), тобто додати рівні, бали тощо. При проходженні кожного рівня збільшувати швидкість руху змійки вдвічі і збільшувати кількість перешкод. Ще одним з варіантів покращення гри є впровадження мелодій для фонової музики і додання в меню пункту, який дозволяв би вибирати одну з них. Можна створити таймер, який визначатиме скільки гравцю необхідно часу для проходження гри чи рівню. А на основі цих даних можна створити “Таблицю лідерів” тощо.
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
Керніган Б.В., Річі Д.М. «Мова програмування С». Пітер, 1996
Андре Ламот. «Програмування ігор для Windows. Поради професіонала». Електронне видання
Юрій Щупак. «Win 32 API». Пітер, 2007
Девяткін І.В. «Методичні вказівки по оформленню текстової документації». Жовті Води, 2007
Головатий О.О. «Методичні вказівки до оформлення пояснювальних записок». Жовті Води, 2005