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

 

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

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

(СибАДИ)»

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

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

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







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

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

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



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

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

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

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







Омск 2014

Содержание


Введение

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

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

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

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

.1 Правила игры

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

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

Заключение

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


Введение


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

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

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

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


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

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


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


C++ - компилируемый <#"center">язык программирование клавиатура 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шаблон для цветаsizeintразмер змейкиX, Yintв какую сторону движется змейкаcoordinates_x[1000], coordinates_y[1000]intмассивы, хранящие координаты частей тела змейкиfood_x, food_yintкоординаты едыsymbolcharхранит ASCII код нажатой клавишиА[1000][1000]charтаблица, в которой происходит вся играNconst intвысота таблицыMconst intширина таблицыTIMEconst intвремя за которое змейка перемещается на одну клетку

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

ИмяТипНазначениеchange_colorvoidфункция изменения цвета консолиchange_directionvoidфункция, считывающая нажатую клавишуshow_tablevoidфункция для вывода таблицыclear_snake_on_tablevoidочищаем координаты, в которых располагалась змейкаshow_snake_on_tablevoidОбозначаем координаты змейкиgame_overboolпроверяем, съела ли змейка саму себяcheck_coordinatesvoidпроверяем, не вышла ли змейка за поле, если да то возвращаем ее обратноnext_stepvoidфункция перемещения змейкиfood_checkboolфункция проверки на наличие еды на картеplace_foodvoidфункция добавления еды на картуstandart_settingsvoidначальные установкиmainintОсуществление всех функций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()namespace std;main_color[] = "color ##"; // шаблон для цвета

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

int food_x = -1, food_y = -1; // координаты едыsymbol; // хранит ASCII код нажатой клавиши

char А[1000][1000]; // таблица, в которой происходит вся играint N = 15; // высота таблицыint M = 20; // ширина таблицыint TIME = 100; // время за которое змейка перемещается на одну клетку

change_color()

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

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

++y;%= 16;(x > 9)+= 'A' - 10;+= '0';(y > 9)+= 'A' - 10;+= '0';

// выбираем рандомные цвета_color[6] = x;

main_color[7] = y;(main_color);

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

}change_direction()

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

{= _getch();

switch (symbol)

{119: if(X != 1 || Y != 0) { X = -1; Y = 0; } break;97 : if(X != 0 || Y != 1) { X = 0; Y = -1; } break;115 : if(X != -1 || Y != 0) { X = 1; Y = 0; } break;100 : if(X != 0 || Y != -1) { X = 0; Y = 1; } break;32 : change_color(); break;: break;

}

}show_table()

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

{("cls");

// очистка консоли(int i = 0; i <= N + 1; ++i)(int j = 0; j <= M + 1; ++j)<< (i == 0 || j == 0 || i == N + 1 || j == M + 1 ? '#' : А[i][j]) << (j <= M ? "" : "\n");

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

}clear_snake_on_table()

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

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

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

}show_snake_on_table()

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

{(X == 1 && Y == 0) А[coordinates_x[1]][coordinates_y[1]] = 'v';(X == -1 && Y == 0) А[coordinates_x[1]][coordinates_y[1]] = '^';(X == 0 && Y == 1) А[coordinates_x[1]][coordinates_y[1]] = '>';(X == 0 && Y == -1) А[coordinates_x[1]][coordinates_y[1]] = '<';

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

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

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

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

}game_over()

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

{(int i = 2; i <= size; ++i)(coordinates_x[1] == coordinates_x[i] && coordinates_y[1] == coordinates_y[i]) return true;

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

return false;

}check_coordinates()

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

{(coordinates_x[1] > N) coordinates_x[1] = 1;(coordinates_x[1] < 1) coordinates_x[1] = N;(coordinates_y[1] > M) coordinates_y[1] = 1;(coordinates_y[1] < 1) coordinates_y[1] = M;

}next_step()

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

{_snake_on_table();

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

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

{_x[i] = coordinates_x[i - 1];_y[i] = coordinates_y[i - 1];

}

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

_x[1] += X;_y[1] += Y;

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

_coordinates();

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


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

{++;_x = -1;_y = -1;

}

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


show_snake_on_table();

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

(game_over() == true)

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

{<< "Vi proigrali! \n";("pause");

exit(0);

}

}food_check()

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

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

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

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

}place_food()

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

{(time(NULL));(int i = 1; i <= 9; ++i)

{x = rand(), y = rand();(x < 0) x *= -1;(y < 0) y *= -1;%= (N + 1);%= (M + 1);(x == 0) ++x;(y == 0) ++y;

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

{_x = x;_y = y;

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

return;

}

}

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

}standart_settings()

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

{= 1;_x[1] = 5;_y[1] = 5;= 0;

Y = 1;

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

}main ()

{_settings();

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

(1)

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

{(_kbhit() == true)

// если нажата клавиша_direction();

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

_step();

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

(food_check() == false)

place_food();

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

show_table();

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

(TIME);

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

}

}


Государственное образовательное учреждение высшего профессионального образования «Сибирская государственная автомобильно-дорожная академия (СибАДИ)&#

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ