Курсовая работа: Разработка программы для игры Тетрис

От языка программирования C++ языком C# унаследованы следующие механизмы: "перегруженные" операторы, небезопасные арифметические операции с плавающей точкой, а также ряд других особенностей синтаксиса.

Несмотря на весьма существенные различия между компонентной объектной моделью COM (основного стандарта Microsoft для компонентного проектирования и реализации программного обеспечения) и моделью Java Beans, базовым стандартом Sun Microsystems для компонент (зависимой от языка реализации), язык программирования C# имеет довольно много общего с языком Java.

Перечислим наиболее характерные черты сходства языков программирования C# и Java. Прежде всего, оба языка относятся к категории объектно-ориентированных и предполагают единственность наследования. Другими важными особенностями, которые сближают языки программирования C# и Java, являются механизмы интерфейсов, обработки исключительных ситуаций, а также процессов или "нитей" (threads). "Сборка мусора" и пространства имен реализованы в этих двух языках сходным образом. Оба языка программирования характеризуются сильной (строгой) типизацией и динамической загрузкой кода при выполнении программы.

Но несмотря на то, что целый ряд конструктивных синтаксических механизмов и особенностей реализации унаследован языком программирования C# от прародителей (C++ и Java), возможности этого нового языка программирования не ограничиваются суммой возможностей его исторических предшественников.

К числу принципиально важных решений, которые реализованы корпорацией Microsoft в языке программирования C#, можно отнести следующие:

· компонентно-ориентированный подход к программированию (который характерен и для идеологии Microsoft.net в целом);

· свойства как средство инкапсуляции данных (характерно также в целом для ООП);

· обработка событий (имеются расширения, в том числе в части обработки исключений, в частности, оператор try);

· унифицированная система типизации (соответствует идеологии Microsoft.net в целом);

· делегаты (delegate - развитие указателя на функцию в языках C и C++);

· индексаторы (indexer - операторы индекса для обращения к элементам класса-контейнера);

· перегруженные операторы (развитие ООП);

· оператор foreach (обработка всех элементов классов-коллекций, аналог Visual Basic);

· механизмы boxing и unboxing для преобразования типов;

· атрибуты (средство оперирования метаданными в COM-модели);

· прямоугольные массивы (набор элементов с доступом по номеру индекса и одинаковым количеством столбцов и строк).

Приведенные выше особенности языка C# повлияли на выбор языка программирования и соответственно среды.net для программы.

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

При создании программного алгоритма "Тетриса" на начальном этапе была разработана блок-схема игры. В ней было описана последовательность работы алгоритма игры (Рис.2).

Рис.2


При запуске приложения "Тетрис" происходит объявления двумерного массива, с последующим его заполнением пустыми значениями. Игра начинается при запуске таймера. Далее происходит выбор фигуры с помощью генератора случайных чисел. В соответствии с выбранной фигурой происходит заполнение первых двух строк массива. Затем происходит вход в цикл падения фигуры. Тело цикла представляет собой сдвиг фигуры на одну строку ниже и проверка на нажатие кнопок "Вправо", "Влево", "Поворот" (при нажатии этих кнопок происходит сдвиг фигуры вправо, влево и поворот вокруг своей оси соответственно). Условие окончания цикла - отсутствие свободного места под фигурой. После выхода из цикла начинается проверка полностью заполненных строк. Если такие имеются, то происходит их очистка и сдвиг всех строк, находящихся выше. Далее происходит новый выбор фигуры и повторение алгоритма. Если же заполненных строк нет, то происходит проверка на свободное место в третьей строке. Если третья строка свободна, то происходит выбор фигуры и выполнение алгоритма цикла. При заполненности третьей строки происходит остановка таймера и вывод результатов игры. Затем происходит выход из игры.

2.3 Вводимые и выводимые данные

Одной из самых важных функций любого языка программирования является предоставление возможностей для управления программой в ручную. Это подразумевает создание пользовательского интерфейса.

Выводимыми данными являются данные сообщаемые пользователю, а вводимыми являются те данные, которые пользователь сообщает программе.

Выводимые данные в программе представлены в виде графического отображения окна игры (Рис.3)

Рис.3

Окно игры.

Вводимыми данными представлены в виде программного кода, который необходимо выполнить при определенных действиях пользователя. А именно:

1) нажатие клавиш Left, Right, Up, Space;

К-во Просмотров: 1508
Бесплатно скачать Курсовая работа: Разработка программы для игры Тетрис