Сделай Сам Свою Работу на 5

Спецификация входных и выходных данных





Входной информацией является нажатие клавиши «Новая игра», После нажатия запускается игра. Управление игрока кнопки UP, DOWN, RIGHT, LEFT. Выходной информацией является перемещение в Data Grid View.

Выбор среды и языка программирования

Для разработки программы выбран объектно-ориентированный язык программирования С#. Он хорошо организован, строг, большинство его конструкций логичны и удобны. Немаловажно, что С# является профессиональным языком, предназначенным для решения широкого спектра задач, и в первую очередь — в быстро развивающейся области создания распределенных приложений. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

Выбор среды разработки обоснован тем, что Microsoft Visual Studio 2010 – одно из лучших решений для разработки приложений на языке C#, это передовая среда разработки на языке C#, предназначенная для создания интерактивных приложений с пользовательским интерфейсом для компьютеров, рабочих станций, сенсорных дисплеев, информационных терминалов и Интернета. Visual Studio включает в себя редактор исходного кода с поддержкой технологии Intelli Sense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных.



Требуемое программное и техническое обеспечение

Персональный компьютер фирмы IBM серии PC (или совместимый с этими моделями), работающий под управлением операционной системы Windows 7 или более поздней. Требования к техническим характеристикам ПК пользователя: Процессор – Intel Celeron CPU 560; Объем ОЗУ – 1 Гб; Дисковая подсистема – 160 Гб.


Технология разработки приложения

Алгоритм решения

В своем приложении я использовал условия, функции и циклы, компоненты Windows Forms, обработчик исключений.



Условия я использовал чтобы обозначить условия проигрыша игрока и для того чтобы изменять направление движения фигуры с помощью клавиш.

Блок-схема (Приложение 2).

Макет приложения

В данном приложении использовались компоненты: timer и MenuStrip. Компонент Timer - это таймер, который вызывает событие через определенное пользователем интервалы времени.

Свойства Timer:

CanRaiseEvents - возвращает значение, показывающее, может ли компонент вызывать событие.

Enabled - возвращает или задает значение, определяющее, должен ли объект Timer вызывать событие.

Interval - возвращает или задает интервал в миллисекундах, по истечении которого возникает событие Tick.

Компонент MenuStrip - предоставляет систему меню для формы.

Свойства MenuStrip:

AccessibilityObject - получает объект AccessibleObject, назначенный элементу управления.

AccessibleDefaultActionDescription - возвращает или задает описание выполняемого по умолчанию действия элемента управления для использования клиентскими приложениями со специальными возможностями.

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

На рисунке 2 представлено основное окно программы.

Рисунок 2 - Главное окно программы.

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

В данной системе используется 5 классов «Form1», «Igrovoe_pole», «Grid», «Infographics» и «figura» код которых представлен в приложении 1. Они содержат обработчики событий.

Классы:

public class Igrovoe_pole задает поле игры, очищает поле, задает начальные координаты места падения фигур, отображает фигуру в окне, скорость перемещения с помощью «Timer».



public class Grid рисует поле игры.

public class Infographics служит для графического представления игрового окна. Внутри вы найдете множество решеток и основные функции для ее работы.

public class figura создает случайную фигуру случайного цвета и ее вид после поворота.

public partial class Form1 отвечает за вывод информации в реальном времени, правила игры, запуск игры и пауза, перемещение фигуры по игровому полю.

Обработчик событий private void Initialization() - выводит поле счёта и уровень.

Обработчик событий private void timer1_Tick(object sender, EventArgs e) - задает правила игры с помощью «Timer».

Счетчик (Timer.Interval) изменяет свой интервал в зависимости от уровня (level). После каждого нажатия контролируемая фигура (f) должна упасть вниз на одну строку, а если это невозможно, то появится новая фигура. Если образуется заполненная строка, то она исчезает и начисляется 1 очко. За каждые 10 очков увеличивается уровень. При отсутствие места для новой фигуры игра заканчивается и выводится сообщение "Конец игры". После этого очищается игровое поле и вся информация.

if (!Igrovoe_pole.wdol())

{

if (Fast)

{

Fast = false;

if (level < 11)

Timer.Interval = 1000 - 100 * (level - 1);

else if (level < 21)

Timer.Interval = 100 - 10 * (level - 1);

else Timer.Interval = 10;

}

int pkt = Igrovoe_pole.linie();

punkty += (pkt * pkt);

Pkt.Text = punkty.ToString();

if (punkty >= level * 10)

{

level++;

Level.Text = level.ToString();

if (level < 11)

Timer.Interval -= 100;

else if (level < 21)

Timer.Interval -= 10;

else Timer.Interval = 10;

}

figura f = Next.getfigura();

if (!Igrovoe_pole.drawfigure(5, 0, f))

{

Timer.Stop();

Timer.Interval = 1000;

MessageBox.Show("Конец игры");

gra = false;

f = null;

Igrovoe_pole.reset();

Next.reset();

level = 1;

punkty = 0;

Pkt.Text = "0";

Level.Text = "1";

return;

}

Обработчик событий private void toolStripMenuItem2_Click(object sender, EventArgs e) - отвечает за запуск игры.

При нажатии клавиши "Начать игру" начинает падать фигура и в соседнем окне появляется следующая по очереди фигура.

private void toolStripMenuItem2_Click(object sender, EventArgs e)

{

gra = true;

Igrovoe_pole.drawfigure(5, 0, NEW figura());

Next.drawfigure(0, 0, NEW figura());

Timer.Start();

}

Обработчик событий private void toolStripMenuItem3_Click(object sender, EventArgs e) - отвечает за остановку игры.

При нажатии клавиши "Пауза" происходит следующие: если пауза (pauza) включена, то счетчик (Timer) останавливается, иначе при отключенной паузе счетчик включается.

private void toolStripMenuItem3_Click(object sender, EventArgs e)

{

if (pauza)

{

Timer.Start();

pauza = false;

}

else

{

Timer.Stop();

pauza = true;

}

}

Обработчик событий private void toolStripMenuItem4_Click(object sender, EventArgs e) - отвечает за остановку игры.

При нажатии клавиши "Закончить игру" игра останавливается(gra = false), игровое поле (Igrovoe_pole) и поле следующих фигур (Next) очищается, уровень (level) и очки (punkty) принимают начальное значение, счетчик (Timer) останавливается.

private void toolStripMenuItem4_Click(object sender, EventArgs e)

{

gra = false;

Igrovoe_pole.reset();

Next.reset();

level = 1;

punkty = 0;

Level.Text = "1";

Pkt.Text = "0";

Timer.Stop();

Timer.Interval = 1000;

}

Обработчик событий protected override void OnKeyDown(KeyEventArgs e) - отвечает за управление фигурами.

При нажатии клавиши "LEFT" фигура смещается на единичный интервал влево. При нажатии клавиши "RIGHT" фигура смещается на единичный интервал вправо. При нажатии клавиши "UP" фигура поворачивается на 90° вправо. При нажатии клавиши "DOWN" фигура быстро опускается.

protected override void OnKeyDown(KeyEventArgs e)

{

base.OnKeyDown(e);

if (e.KeyCode == Keys.Left && gra && !pauza) Igrovoe_pole.left();

if (e.KeyCode == Keys.Right && gra && !pauza) Igrovoe_pole.right();

if ((e.KeyCode == Keys.Up || e.KeyCode == Keys.Up) && gra && !pauza) Igrovoe_pole.turn_right();

if (e.KeyCode == Keys.Down && gra && !pauza)

{

if (Fast)

{

Timer.Interval = 1000 - 100 * (level - 1);

Fast = false;

}

else if (!Fast)

{

Timer.Interval = 50;

Fast = true;

}

}

}

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.