Игра "Тетрис" - Курсовая работа

бесплатно 0
4.5 23
Объектно-ориентированный анализ и проектирование системы на языке UML. Программная реализация на языке С . Исходный текст программы. Описание реализации программных модулей. Инструкция пользователя, методика и результаты тестирования программы.


Аннотация к работе
Созданием языков программирования занимаются в большинстве случаев очень квалифицированные люди, часто группы программистов, а иногда даже международные коллективы. Однако подавляющее большинство языков программирования умирало, едва родившись. К таким «счастливым» языкам принадлежит язык Си, разработанный Денисом Ритчи. Среди преимуществ языка С можно отметить переносимость программ, написанных на языке С , на компьютеры различной архитектуры и из одной операционной системы в другую с незначительными изменениями (или вообще без них), лаконичность записи алгоритмов, логическую стройность и удобочитаемость программ, возможность получить эффективный код программ, сравнимых по скорости с программами, написанными на ассемблере. Главное удобство языка С состоит в том, что он является одновременно и языком высокого уровня, имеющим полный набор конструкций структурного программирования, поддерживающим модульность, блочную структуру программ, возможность раздельной компиляции модулей, и в тоже самое время язык С имеет набор низкоуровневых средств, позволяющих добраться до каждого бита памяти.Разработав модель и специфицировав ее на языке UML, разработчик имеет все основания быть понятым и по достоинству оцененным своими коллегами. При этом могут быть исключены ситуации, когда тот или иной разработчик применяет свою собственную графическую нотацию для представления тех или иных аспектов модели, что практически исключает ее понимание другими специалистами в случае нетривиальности исходной модели. Возможно со временем язык UML станет тем "эсперанто", на котором смогут общаться математики, системные аналитики, физики, программисты, менеджеры, экономисты и специалисты других профессий, представляя свои профессиональные знания в унифицированном виде.

Введение
Созданием языков программирования занимаются в большинстве случаев очень квалифицированные люди, часто группы программистов, а иногда даже международные коллективы. Однако подавляющее большинство языков программирования умирало, едва родившись. Лишь к немногим из них был проявлен интерес, и буквально единицы получили действительно широкое распространение. К таким «счастливым» языкам принадлежит язык Си, разработанный Денисом Ритчи. Серьезное влияние на него оказали предшествующие языки BCPL и Би (B).

С - модификация языка С - универсальный язык программирования, предназначенный для решения широкого круга задач и содержащий современные механизмы управления вычислительным процессом и работы с данными. В то же время язык С очень прост: в него введены некоторые средства, характерные скорее для ассемблеров, чем для языков высокого уровня.

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

Среди преимуществ языка С можно отметить переносимость программ, написанных на языке С , на компьютеры различной архитектуры и из одной операционной системы в другую с незначительными изменениями (или вообще без них), лаконичность записи алгоритмов, логическую стройность и удобочитаемость программ, возможность получить эффективный код программ, сравнимых по скорости с программами, написанными на ассемблере. Главное удобство языка С состоит в том, что он является одновременно и языком высокого уровня, имеющим полный набор конструкций структурного программирования, поддерживающим модульность, блочную структуру программ, возможность раздельной компиляции модулей, и в тоже самое время язык С имеет набор низкоуровневых средств, позволяющих добраться до каждого бита памяти.

К достоинствам языка С можно отнести и его высокую эффективность, так как его структура позволяет наилучшим образом использовать возможности современных персональных компьютеров.

Гибкость и универсальность языка С обеспечивают его широкое распространение среди программистов-профессионалов. Его можно использовать для решения практически всех типов задач.

Данный программный продукт - игровая программа «TETRIS», написана на языке С с целью показать некоторые его основные свойства.

Объектно-ориентированный анализ и проектирование системы на языке UML

Диаграмма вариантов использования

Рис. 1

Диаграммы классов

Диаграммы последовательности

1 - Генерация новой фигуры;

2 - Сдвиг фигуры влево;

3 - Сдвиг фигуры вправо;

4 - Поворот фигуры вокруг оси вращения;

5 - Быстрое падение;

6 - Удаление заполненной строки.

Диаграмма состояний

Программная реализация на языке С . Краткая характеристика инструментальной программной среды

Для написания игровой программы «TETRIS» был выбран язык C , т.к. в последнее время он является одним из наиболее распространенных языков объектно-ориентированного программирования.

Интегрированная среда разработки Visual C 6.0 представляет собой программный комплекс, который объединяет в себе текстовый редактор, ориентированный на создание программ на языке С , редактор ресурсов, вьювер классов и т.д.

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

Структура программы

Исходный текст программы хранится в двух файлах: resource.h и tetris.cpp.

Resource.h: описание идентификаторов пунктов меню.

Tetris.cpp: описание и реализация классов shape и tetriswnd.

Входные данные: Клавиши left, right, up, down;

Уровень игры (level1, level2, level3).

Выходными данными является информация, выводимая на экран в графическом режиме: рисунок ящика, падающие и лежащие на дне фигуры.

Описание реализации программных модулей

В состав программы входят функции отображения на экране движущихся фигурок, параллельного переноса их вправо и влево, поворота вокруг собственной оси, быстрого падения на дно короба и ряд вспомогательных функций (контроль наложения фигур, отображение элементов фигур и т.д.).

В соответствии с принципами объектно-ориентированного программирования данные в программе организованы в несколько классов: class Shape // фигура

{ public: boolcells[4][4];

SHAPETYPECURTYPE;

VOIDNEWSHAPE( SHAPETYPE );

VOIDROTATE();

VOIDCLEARSHAPE( bool c[4][4] );

А также класс приложения TETRISWND.

Инструкция пользователя

Запуск программы осуществляется командой tetris из каталога, содержащего файлы tetris.exe. Управление игрой осуществляется клавишами, представленными в таблице: Название клавиши Выполняемая функция

Стрелка вправо Сдвиг фигуры вправо

Стрелка влево Сдвиг фигуры влево

Стрелка вверх Поворот фигуры вокруг собственной оси по часовой стрелке

Стрелка вниз Падение фигуры до дна ящика

Методика и результаты тестирования программы программа язык пользователь uml

Утверждение о работоспособности программы осуществляется на основе следующих фактов: 1. независание фигуры при падении;

2. падение фигуры до дна ящика;

3. невыход фигуры за границы ящика;

4. сдвиг фигуры и поворот ее на расстоянии от стенок;

5. неналожение фигуры при достижении лежащих на дне ящика других фигур;

6. изъятие слоя, не содержащего пустых ячеек (все ячейки заполнены квадратами фигур);

7. окончание игры при заполнении ящика или по команде игрока.

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

Вывод
Разработав модель и специфицировав ее на языке UML, разработчик имеет все основания быть понятым и по достоинству оцененным своими коллегами. При этом могут быть исключены ситуации, когда тот или иной разработчик применяет свою собственную графическую нотацию для представления тех или иных аспектов модели, что практически исключает ее понимание другими специалистами в случае нетривиальности исходной модели. Последующая разработка модели системы, направленная на решение определенных проблем, может потребовать привлечения знаний из различных дисциплин. С этой точки зрения язык UML может быть использован не только для унификации представлений этих знаний, но что не менее важно - для их интеграции, направленной на повышение адекватности много-модельных представлений сложных систем.

Возможно со временем язык UML станет тем "эсперанто", на котором смогут общаться математики, системные аналитики, физики, программисты, менеджеры, экономисты и специалисты других профессий, представляя свои профессиональные знания в унифицированном виде. Ведь, по существу, каждый из специалистов оперирует модельными представлениями в своей области знаний. И именно этот модельный аспект может быть специфицирован средствами языка UML.

В связи с этим значение языка UML существенно возрастает, поскольку он все более приобретает черты языка представления знаний. При этом наличие в языке UML изобразительных средств для представления структуры и поведения модели позволяет достичь адекватного представления декларативных и процедурных знаний и, что не менее важно, установить между этими формами знаний семантическое соответствие. Все эти особенности языка UML позволяют сделать вывод о том, что он имеет самые серьезные перспективы уже в ближайшем будущем.

Список литературы
1. Т.Павловская «С : Учебник»

2. Б.Карпов, Т.Баранова «С : Специальный справочник»

3. Г.Шилдт «Полный справочник по С»

4. И. Труб «Объектно-ориентированное моделирование на С »

5. С. Холзнер «Visual C 6», учебный курс.
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?