–азработка программы "»гра "«мейка"

 

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

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

(—ибјƒ»)»

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

Ќаправление »нформационна€ безопасность

 афедра »нформационна€ безопасность







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

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

Ќазвание работы «–азработка программы «»гра ««мейка»



¬ыполнил: студент гр. Ѕ»б-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: MAIL@SKACHAT-REFERATY.RU

—качать реферат © 2018 | ѕользовательское соглашение

—качать      –еферат

ѕ–ќ‘≈——»ќЌјЋ№Ќјя ѕќћќў№ —“”ƒ≈Ќ“јћ