Постановка задач.
Основной задачей этой курсовой работы является создание графического объекта «змейка» перемещающегося по полю консольного окна и собирающего «бонусы». Перемещение объекта управляется пользователем при помощи функциональных клавиш:
- Стрелки клавиатуры (вверх, вниз, влево, вправо), в зависимости от нажатой стрелки «змейка» перемещается по экрану в заданном направлении.
- Клавиша «Delete» останавливает игру, ставит приложение на паузу, при этом змейка останавливается, для того чтобы продолжить игру необходимо нажать клавишу «Enter».
- Для выхода из приложения используется клавиша «Escape».
В процессе движения «змейка» должна преодолевать препятствия (стенки) расположенные на игровом поле консольного окна и устанавливаемые случайным образом перед началом движения (началом игры).
Общая структура программы
Библиотеки используемые в приложении:
- #include <windows.h> - это заголовочный файл от библиотеки. К этой библиотеке относятся команды графического интерфейса, работа с файлами, работа с сетью и другие.
- #include <vector> - специальный класс-контейнер, который предназначен для хранения битов в качестве массива. Но при этом под каждый элемент отводится 1 бит памяти, не больше и не меньше.
- #include <ctime> - заголовочный файл для работы с датой и временем.
Функции используемые в приложении
- BeginGame – функция конструирует начальный экран с надписью “Start. Enter”, при нажатии клавиши “Enter” начинается игра.
- ShufflyFrak – функция расчету установки бонуса.
- IsCollision – функция по расчету столкновения змейки с бонусом, путем проверки координат.
- IsWall – функция проверят столкновение змейки с препятствиями на поле.
- IsDeath – функция проверят столкновение змейки с границами, которые рисует функция «DrawFrame», и столкновение с собой.
- InputKey – обрабатывает нажатие клавиш. Описание функций клавиш в правой части консольного окна, рисуемого функцией DrawFrame. Так же функция не дает возможности направлять змейку в противоположенную сторону, например, если змейка «бежит» направо нельзя клавишей «ß» развернуть ее налево.
- DrawStatus – функция выводит в правый игровой блок кол-во очков и прочую информацию.
- DrawObstacles – функция рисует препятствия (стенки) на игровом поле.
- DrawFrame – функция рисует границы и правый блок с информацией.
- DrawDot – функция рисует точки, иначе все игровое поле будет синее.
- MessageConsole – функция создает рисованное сообщение в случае проигрыша, когда змейка сталкивается со границей, стенкой или с собой.
- Rollover – функция создающее ролловер для кнопок и обеспечивающая обработку прямоугольных областей кнопок.
- DrawButton – функция рисует кнопки в окошке проигрыша, вызывается в «Rollover».
- GetObstacleLenght – функция рассчитывает длину препятствия.
- GetVerticalObstacleCoord – генерирует точку вертикального препятствия
- GetHorisontalObstacleCoord – генерирует точку вертикального препятствия
- InitObstacles – генерирует препятствия путем вызова выше описанных функций. Максимальная длинна препятствия – половина игрового поля
Программные средства для реализации программы:
Для разработки приложения был выбран язык с++, так как он наиболее удобен для разработки данного приложения.
С использованием данного языка программа разрабатывалась в среде программирования Microsoft Visual Studio. В процессе разработки использовалась Microsoft Visual Studio 2010 года выпуска.
Заключение
В результате выполнение курсовой работы, была разработана консольная игра «змейка», в которой по игровому полю перемещается графический объект и подбирает «бонусы». Данная программное приложение реализует типовой алгоритм используемый для реализации движения объектов в разработках всевозможных компьютерных игр, а так же в программах другого назначения, где актуально использование перемещающегося объекта или игрового поля с генерацией лабиринта.
Полный текст работы + код программы (ссылка) - http://2014.ucoz.org/statti/document_snake.docx
Источник: http://2014.ucoz.org |