Главная » Статьи » Программирование » С/С++

Консольная игра - "Змейка"

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

Основной задачей этой курсовой работы является создание графического объекта «змейка» перемещающегося по полю консольного окна и собирающего «бонусы». Перемещение объекта управляется пользователем при помощи функциональных клавиш:

  • Стрелки клавиатуры (вверх, вниз, влево, вправо), в зависимости от нажатой стрелки «змейка» перемещается по экрану в заданном направлении.
  • Клавиша «Delete» останавливает игру, ставит приложение на паузу, при этом змейка останавливается, для того чтобы продолжить игру необходимо нажать клавишу «Enter».
  • Для выхода из приложения используется клавиша «Escape».

В процессе движения «змейка» должна преодолевать препятствия (стенки) расположенные на игровом поле консольного окна и устанавливаемые случайным образом перед началом движения (началом игры).

Общая структура программы

Библиотеки используемые в приложении:

  • #include <windows.h> - это заголовочный файл от библиотеки. К этой библиотеке относятся команды графического интерфейса, работа с файлами, работа с сетью и другие.
  • #include <vector> - специальный класс-контейнер, который предназначен для хранения битов в качестве массива. Но при этом под каждый элемент отводится 1 бит памяти, не больше и не меньше.
  • #include <ctime> - заголовочный файл для работы с датой и временем.

Функции используемые в приложении

  1. BeginGame – функция конструирует начальный экран с надписью   “Start. Enter”, при нажатии клавиши “Enter” начинается игра.
  2. ShufflyFrak – функция расчету установки бонуса.
  3. IsCollision – функция по расчету столкновения змейки с бонусом, путем проверки координат.
  4. IsWall – функция проверят столкновение змейки с препятствиями на поле.
  5. IsDeath – функция проверят столкновение змейки с границами, которые рисует функция «DrawFrame», и столкновение с собой.
  6. InputKey – обрабатывает нажатие клавиш. Описание функций клавиш в правой части консольного окна, рисуемого функцией DrawFrame. Так же функция не дает возможности направлять змейку в противоположенную сторону, например, если змейка «бежит» направо нельзя клавишей «ß» развернуть ее налево.
  7. DrawStatus – функция выводит в правый игровой блок кол-во очков и прочую информацию.
  8. DrawObstacles – функция рисует препятствия (стенки) на игровом поле.
  9. DrawFrame – функция рисует границы и правый блок с информацией.
  10. DrawDot – функция рисует точки, иначе все игровое поле будет синее.
  11. MessageConsole – функция создает рисованное сообщение в случае проигрыша, когда змейка сталкивается со границей, стенкой или с собой.
  12. Rollover – функция создающее ролловер для кнопок и обеспечивающая обработку прямоугольных областей кнопок.
  13. DrawButton – функция рисует кнопки в окошке проигрыша, вызывается в «Rollover».
  14. GetObstacleLenght – функция рассчитывает длину препятствия.
  15. GetVerticalObstacleCoord – генерирует точку вертикального препятствия
  16. GetHorisontalObstacleCoord – генерирует точку вертикального препятствия
  17. InitObstacles – генерирует препятствия путем вызова выше описанных функций. Максимальная длинна препятствия – половина игрового поля

Программные средства для реализации программы:

Для разработки приложения был выбран язык с++, так как он наиболее удобен для разработки данного приложения.

С использованием данного языка программа разрабатывалась в среде программирования Microsoft Visual Studio. В процессе разработки использовалась Microsoft Visual Studio 2010 года выпуска.

Заключение

В результате выполнение курсовой работы, была разработана консольная игра «змейка», в которой по игровому полю перемещается графический объект и подбирает «бонусы». Данная программное приложение реализует типовой алгоритм используемый для реализации движения объектов в разработках всевозможных компьютерных игр, а так же в программах другого назначения, где актуально использование перемещающегося объекта или игрового поля с генерацией лабиринта.

 

Полный текст работы + код программы (ссылка) - http://2014.ucoz.org/statti/document_snake.docx

 



Источник: http://2014.ucoz.org
Категория: С/С++ | Добавил: Алексей (20.11.2015) | Автор: Фролов Алексей Алексеевич E
Просмотров: 2969 | Комментарии: 17 | Теги: змейка, игра, программирование, С++, Среда программирования, консоль, С#, Visual Studio, змейка с++, консольная игра змейка | Рейтинг: 5.0/1
Всего комментариев: 17
avatar
1
Скриншотов не хватает.
avatar
0
2
Это очень старая курсовая, поэтому скриншотов не осталось, а компилировать, чтобы их сделать времени нет совсем. sad
avatar
3
Но всё-таки лучше приложить скриншоты, когда будет время, а то куча текста и посмотреть на результат нет возможности.
avatar
0
4
Окей. Сделаю.
avatar
13
Сейчас вот скомпилировал проект автора. Отлично работает. Играть можно.
avatar
5
А почему в консольном окне, а не на форме?
avatar
0
6
На момент написания я еще не умел грамотно работать с формами, поэтому реализовал в консоли. Да собственно - это не такое уж приложение, чтобы наводить в нем красоту и реализовывать на формах.
avatar
7
Консоль юзер не поймет
avatar
0
8
Тот кому за 20 вполне поймет. Не во всех играх главное в графике.
avatar
9
А я сразу начинал с программирования на формах. Проще было работать, чем с черным окошком.
avatar
1
10
Работать с формами в графическом редакторе? Если да, то тебе тяжелее будет работать в тех средах разработки, где плохой графический редактор или нужно обходиться без него.
avatar
11
Пока консольных приложений писать не требовалось.
avatar
12
В консольке потому, что это змейка наверное. Это как тетрис, который странно смотриться, если он слишком современный.
avatar
14
Прикольная вещь smile
avatar
15
Неплохая реализация с минимальным количеством кода. На всю программу меньше тысячи строк кода, что вполне нормально для небольшой игры. Как следствие в игре мало возможностей: что можно сделать в ней это просто играть змейкой в почти ничем не изменяющихся между собой уровнях.
avatar
0
16
Может в этом году сделаю новую версию. Более интересную.
avatar
17
Класс smile
avatar