Разработка программы "Игра "Змейка"

Основы языка программирвоания C++. Элементы управления в Microsoft Visual C++. Алгоритмические конструкции языка программирования Visual C++ и базовые элементы управления. Глобальные константы и переменные. Управление программой с помощью клавиатуры.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 08.04.2015
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Государственное образовательное учреждение высшего профессионального образования

«Сибирская государственная автомобильно-дорожная академия

(СибАДИ)»

Факультет Информационные системы в управлении

Направление Информационная безопасность

Кафедра Информационная безопасность

Пояснительная записка к курсовой работе

по дисциплине «Языки программирования»

Название работы «Разработка программы «Игра «Змейка»

Выполнил: студент гр. БИб-13И1

Щепов Олег Максимович

Проверил преподаватель

Толкачева Е.В.

Омск 2014

Содержание

Введение

1. Среда разработки приложений Microsoft Visual C++

1.1 Основы языка C++

1.2 Элементы управления в Microsoft Visual C++

2. Описание программы

2.1 Правила игры

2.2 Блок-схема программы

2.2 Демонстрация работы программы

Заключение

Приложение А Листинг программы

Введение

Целью курсовой работы является получение опыта самостоятельной разработки в соответствии с заданием пользовательского приложения, работающего под управлением ОС Microsoft Windows, в среде разработки приложений Microsoft Visual C++, а также получение навыка составления пояснительной записки и оформления в соответствии с требованиями, принятыми на факультете «Информационные системы в управлении».

Задачами курсовой работы являются: 1) разработка программы
в соответствии с заданием; 2) составление пояснительной записки
в соответствии с требованиями.

В первой главе пояснительной записки к курсовой работе приводится краткое описание возможностей интегрированной среды разработки приложений Microsoft Visual C++, основных алгоритмических конструкций языка программирования Visual C++ и базовых элементов управления.

Во второй главе приводится краткое описание программы, блок-схема программы и демонстрация работы программы.

В заключении приводится перечень изученных вопросов и основных результатов курсовой работы.

В приложение вынесен программный код с подробными комментариями.

1. Среда разработки приложений Microsoft Visual C++

Microsoft Visual C++ (MSVC) -- интегрированная среда разработки приложений на языке C++, разработанная фирмой Microsoft и поставляемая либо как часть комплекта Microsoft Visual Studio, либо отдельно в виде бесплатного функционально ограниченного комплекта Visual C++ Express Edition.

1.1 Основы языка С++

C++ -- компилируемый статически типизированный язык программирования общего назначения.

Поддерживает такие парадигмы программирования как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции. Стандартная библиотека включает, в том числе, общеупотребительные контейнеры и алгоритмы. C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником -- языком C, -- наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования.

язык программирование клавиатура visual

1.2 Элементы управления в Microsoft Visual C++

Рисунок 1.1 - Главное окно Microsoft Visual Studio

Рисунок 1.2 - Окно создания проекта

Рисунок 1.3 - Окно разработки программы

2. Описание программы

Приложение представляет собой стандартное консольное приложение, которое можно свернуть или закрыть.

В таблице 2.1 перечислены используемые в программе глобальные константы и переменные, в таблице 2.2 - функции.

Таблица 2.1 - Глобальные константы и переменные

Имя

Тип

Назначение

main_color[]

char

шаблон для цвета

size

int

размер змейки

X, Y

int

в какую сторону движется змейка

coordinates_x[1000], coordinates_y[1000]

int

массивы, хранящие координаты частей тела змейки

food_x, food_y

int

координаты еды

symbol

char

хранит ASCII код нажатой клавиши

А[1000][1000]

char

таблица, в которой происходит вся игра

N

const int

высота таблицы

M

const int

ширина таблицы

TIME

const int

время за которое змейка перемещается на одну клетку

Таблица 2.2 - функции

Имя

Тип

Назначение

change_color

void

функция изменения цвета консоли

change_direction

void

функция, считывающая нажатую клавишу

show_table

void

функция для вывода таблицы

clear_snake_on_table

void

очищаем координаты, в которых располагалась змейка

show_snake_on_table

void

Обозначаем координаты змейки

game_over

bool

проверяем, съела ли змейка саму себя

check_coordinates

void

проверяем, не вышла ли змейка за поле, если да то возвращаем ее обратно

next_step

void

функция перемещения змейки

food_check

bool

функция проверки на наличие еды на карте

place_food

void

функция добавления еды на карту

standart_settings

void

начальные установки

main

int

Осуществление всех функций

2.1 Правила игры

Правила игры "Змейка" :

· Змейка всё время движется, перемещаясь на одну клетку через определённый промежуток времени.

· Управление змейкой происходит через клавиши «WASD» (язык клавиатуры должен быть переключён на английский).

· Когда змейка достигает еды, её длина увеличивается на одну клетку.

· Когда змейка втыкается в саму себя, вы проигрываете.

· Достигнув края поля, змейка появляется с другой стороны поля.

· Суть игры увеличить змейку на столько, на сколько это возможно.

2.2 Блок-схема части программы

2.3 Демонстрация работы программы

Для начала работы с программой нужно запустить файл Змейка.exe. Появится окно программы (рисунок 2.3).

Рисунок 2.3 - окно программы «Змейка»

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

Рисунок 2.4 - Результат нажатия клавиши «S»

При достижении головой змейки еды, её длина увеличивается. (рисунок 2.5).

Рисунок 2.5 - Съев одну единицу еды змейка увеличилась на одну клетку

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

Рисунок 2.6 - Результат достижения края поля

Когда змейка втыкается в саму себя, вы проигрываете (рисунок 2.7).

Рисунок 2.7 -Конец игры

Заключение

В ходе выполнения курсовой работы были более подробно изучены
и изложены в пояснительной записке следующие вопросы:

- базовые элементы управления, их свойства и методы;

- управление программой с помощью клавиатуры;

Полученные знания использованы на практике. Результатом работы является приложение-игра «Змейка».

Приложение А

Листинг программы

// Змейка.cpp.

//

# include <iostream>

# include <windows.h>

# include <time.h>

# include <conio.h> // библиотека, нужна для использования функций kbhit() и getch()

using namespace std;

char main_color[] = "color ##"; // шаблон для цвета

int size; // размер змейки

int X, Y; // в какую сторону движется змейка

int coordinates_x[1000], coordinates_y[1000]; // массивы, хранящие координаты частей тела змейки

int food_x = -1, food_y = -1; // координаты еды

char symbol; // хранит ASCII код нажатой клавиши

char А[1000][1000]; // таблица, в которой происходит вся игра

const int N = 15; // высота таблицы

const int M = 20; // ширина таблицы

const int TIME = 100; // время за которое змейка перемещается на одну клетку

void change_color()

// функция изменения цвета консоли

{

char x = rand() % 16, y = rand() % 16;

if (x == y)

++y;

y %= 16;

if (x > 9)

x += 'A' - 10;

else

x += '0';

if (y > 9)

y += 'A' - 10;

else

y += '0';

// выбираем рандомные цвета

main_color[6] = x;

main_color[7] = y;

system(main_color);

// меняем цвет

}

void change_direction()

// функция, считывающая нажатую клавишу

{

symbol = _getch();

switch (symbol)

{

case 119: if(X != 1 || Y != 0) { X = -1; Y = 0; } break;

case 97 : if(X != 0 || Y != 1) { X = 0; Y = -1; } break;

case 115 : if(X != -1 || Y != 0) { X = 1; Y = 0; } break;

case 100 : if(X != 0 || Y != -1) { X = 0; Y = 1; } break;

case 32 : change_color(); break;

default : break;

}

}

void show_table()

// функция для вывода таблицы

{

system("cls");

// очистка консоли

for (int i = 0; i <= N + 1; ++i)

for (int j = 0; j <= M + 1; ++j)

cout << (i == 0 || j == 0 || i == N + 1 || j == M + 1 ? '#' : А[i][j]) << (j <= M ? "" : "\n");

// вывод таблицы

}

void clear_snake_on_table()

// очищаем координаты, в которых располагалась змейка

{

for (int i = 1; i <= size; ++i)

А[coordinates_x[i]][coordinates_y[i]] = ' ';

}

void show_snake_on_table()

// обозначаем координаты змейки

{

if(X == 1 && Y == 0) А[coordinates_x[1]][coordinates_y[1]] = 'v';

if(X == -1 && Y == 0) А[coordinates_x[1]][coordinates_y[1]] = '^';

if(X == 0 && Y == 1) А[coordinates_x[1]][coordinates_y[1]] = '>';

if(X == 0 && Y == -1) А[coordinates_x[1]][coordinates_y[1]] = '<';

// изменяем тип головы

for (int i = 2; i <= size; ++i)

А[coordinates_x[i]][coordinates_y[i]] = '8';

// красим змейку

}

bool game_over()

// проверяем, съела ли змейка саму себя

{

for (int i = 2; i <= size; ++i)

if (coordinates_x[1] == coordinates_x[i] && coordinates_y[1] == coordinates_y[i]) return true;

// если координаты головы змейки равны координате какой-либо части тела змейки, то змейка съела саму себя

return false;

}

void check_coordinates()

// проверяем, не вышла ли змейка за поле, если да то возвращаем ее обратно

{

if (coordinates_x[1] > N) coordinates_x[1] = 1;

if (coordinates_x[1] < 1) coordinates_x[1] = N;

if (coordinates_y[1] > M) coordinates_y[1] = 1;

if (coordinates_y[1] < 1) coordinates_y[1] = M;

}

void next_step()

// функция перемещения змейки

{

clear_snake_on_table();

// чистим таблицу от змейки

for (int i = size; i >= 2; --i)

{

coordinates_x[i] = coordinates_x[i - 1];

coordinates_y[i] = coordinates_y[i - 1];

}

// передвигаем тело змейки

coordinates_x[1] += X;

coordinates_y[1] += Y;

// передвигаем голову змейки

check_coordinates();

// проверяем в порядке ли координаты

if(coordinates_x[1] == food_x && coordinates_y[1] == food_y)

{

size++;

food_x = -1;

food_y = -1;

}

// если голова змейки там же где и еда, то увеличиваем размер змейки

show_snake_on_table();

// рисуем змейку

if (game_over() == true)

// если змея укусила себя

{

cout << "Vi proigrali! \n";

system("pause");

exit(0);

}

}

bool food_check()

// функция проверки на наличие еды на карте

{

if(food_x == -1 && food_y == -1) return false;

// если координаты еды неопределенны то возвращаем true

return true;

// в остальных случаях false

}

void place_food()

// функция добавления еды на карту

{

srand(time(NULL));

for (int i = 1; i <= 9; ++i)

{

int x = rand(), y = rand();

if(x < 0) x *= -1;

if(y < 0) y *= -1;

x %= (N + 1);

y %= (M + 1);

if(x == 0) ++x;

if(y == 0) ++y;

if(А[x][y] != '8' && А[x][y] != 'v' && А[x][y] != '^' && А[x][y] != '<' && А[x][y] != '>')

{

food_x = x;

food_y = y;

А[x][y] = '+';

return;

}

}

// ставим в рандомное место еду

}

void standart_settings()

// начальные установки

{

size = 1;

coordinates_x[1] = 5;

coordinates_y[1] = 5;

X = 0;

Y = 1;

// змейка движется вправо

}

int main ()

{

standart_settings();

// задаем стандартные настройки

while (1)

// бесконечный цикл

{

if (_kbhit() == true)

// если нажата клавиша

change_direction();

// обрабатываем нажатую клавишу

next_step();

// двигаем змейку

if(food_check() == false)

place_food();

// если нет еды, то ставим ее

show_table();

// рисуем змейку

Sleep(TIME);

// "усыпляем" программу на заданный интервал

}

}

Размещено на Allbest.ur


Подобные документы

  • Разработка игры "Угадай персонажа", ее суть и содержание. Запоминание новых персонажей и вопросов, коррекция базы данных. Использование языка программирования С++ и среды разработки Microsoft Visual Studio 2010. Алгоритмы и методы, структура программы.

    курсовая работа [571,9 K], добавлен 14.07.2012

  • Язык программирования Visual Basic: краткая история возникновения, значение и общая характеристика. Изучение основных свойств Visual Basic, синтаксис языка. Обзор ключевых операторов Visual Basic, пользовательские процедуры и функции данного языка.

    контрольная работа [36,4 K], добавлен 23.07.2014

  • Структура и назначение программного кода программы по созданию 3D-графики средствами языка программирования Visual Basic. Элементы управления "Окно формы" и "Таймер", выполняемые ими функции и основные свойства, значение в работе программного кода.

    лабораторная работа [362,4 K], добавлен 06.07.2009

  • Разработка программы FileInfo, выдающей полную информацию о заданном файле с применением языка программирования С++, используя API функции Win 32. Использование пространств имён .NetFramework. Руководство пользователя и системные требования программы.

    курсовая работа [1,2 M], добавлен 25.04.2012

  • Многообразие мини-игр и возможности языка Visual basic 6.0 для их реализации. Понятие мини-игр и их классификация. Элементы управления мини-игры "Реверси". Разработка прикладной программы. Создание игрового интерфейса. Написание программного кода.

    курсовая работа [1,5 M], добавлен 03.06.2014

  • Написание тестирующей программы для проверки знаний учащихся с помощью языка программирования Visual Basic for Applications (VBA), встроенного в пакет Microsoft Office. Общие сведения о программе, условия ее выполнения, настройка, проверка, выполнение.

    контрольная работа [25,2 K], добавлен 07.06.2010

  • Разработка программного продукта с помощью языка программирования Visual Basic. Описание интерфейса пользователя и возможностей программы. Исходный код основных модулей. Программа, демонстрирующая основные возможности диаграмм и среды Visual Basic.

    контрольная работа [989,9 K], добавлен 29.03.2011

  • Изучение общей структуры языка программирования Delphi: главные и дополнительные составные части среды программирования. Синтаксис и семантика языка программирования Delphi: алфавит языка, элементарные конструкции, переменные, константы и операторы.

    курсовая работа [738,1 K], добавлен 17.05.2010

  • Понятие математического программирования. Класс как тип структуры, позволяющий включать в описание типа не только элементы данных, но и функции. Рассмотрение основных особенности языка программирования C++. Характеристика среды MS Visual Studio 2008.

    контрольная работа [318,0 K], добавлен 13.01.2013

  • Основные этапы решения задач на ЭВМ. Элементы управления и пользовательская форма VBA. Ввод и вывод информации. Открытие и закрытие файла. Операторы цикла и подпрограммы. Реализация разветвляющихся алгоритмов в VBA. Типы данных, переменные и константы.

    учебное пособие [1,4 M], добавлен 21.05.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.