Разработка программы "Игра "Змейка"
Основы языка программирвоания 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