Технология программирования

Технология программирования - Игровая программа “TETRIS”
Задание.
Написать на языке PASCAL и отладить в интерактивном режиме игровую программу
TETRIS.
Основное внимание необходимо уделить процессу нисходящего поуровневого
проектирования алгоритма.
Техническое задание (ГОСТ 19.201-78).
1.Введение.
Наименование программы - "TETRIS". Применение программы - в области игровых
программ.
2. Основание для разработки.
Выполнение курсовой работы.
3. Назначение разработки.
Данная программа является игровой, она применяется для развлечения
пользователей, совершенствования их координации движения и логического мышления.
4. Требования к программе.
4.1. Требования к функциональным характеристикам.
В состав программы входят функции отображения на экране двужущихся фигурок,
параллельного переноса их вправо и влево, поворота вокруг собственной оси,
быстрого падения на дно короба и ряд вспомогательных функций (контроль наложения
фигур, отображение элементов фигур и т.д.).
Входные данные - коды нажимаемых клавиш.
Выходные данные - графическая информация, выводимая на экран.
В работе программы временные характеристики несущественны.
4.2. Требования к надежности.
Надежное функционирование программы обеспечивается проверкой наложения при
перемещении фигур и ограничением, накладываемым на набор входных данных (коды
нажатых клавиш игнорируются, если эти клавиши не являются управляющими в игре).
4.3. Требования к составу и параметрам технических средств ЭВМ, внешние
устройства, их характеристики.
Для функционирования программы требуется персональная ЭВМ с процессором
8086/8088, от 640 килобайт оперативной памяти, видеоадаптер VGA/EGA и
соответствующий монитор. Прочие внешние устройства для работы программы не
требуются.
4.4. Требования к информационной и программной совместимости ОС, система
программирования, используемые программные средства, методы решения,
информационные структуры и т.п.
Для функционирования программы требуется ОС MS-DOS версии 3.30 или выше, от 32
килобайт свободной оперативной памяти. Программа разработана в интегрирированной
среде Turbo Pascal версии 7.0.
4.5. Специальные требования.
Специальные требования отсутствуют.
5. Требования к программной документации.
Требования к программной документации отсутствуют.
6. Технико-экономические показатели. Ориентировочная экономическая
эффективность, преимущества по сравнению с аналогами.
Преимуществом по сравнению с аналогом является постоянное увеличение скорости
игры.
Практическая часть.
Пояснительная записка (ГОСТ 19.404-79)
1. Введение
Наименование программы - "TETRIS", основание разработки - выполнение курсовой
работы.
2. Назначение и область применения программы.
Назначение программы - развлечение играющих, совершенствование их координации и
логического мышления. Программа может применяться в качестве игровой на разных
типах персональных компьютеров.
3. Технические характеристики.
3.1. Постановка задачи на разработку, описание методов решения.
Разработать алгоритм программы, осуществляющей передвижение фигур по экрану
сверху вниз, координацию их местоположения в соответствии с действиями
играющего.
Фигуры состоят из квадратов одинакового размера, набор фигур конечен,
последовательность появления фигур должна быть случайной, причем появления фигур
должны быть равновероятными. Игрок должен укладывать фигуры на дно ящика с
наибольшей плотностью (количество незаполненных квадратов должно быть
минимальным). При этом если слой, полностью заполненный квадратами, должен
автоматически изыматься из ящика. Квадраты фигур не должны налагаться друг на
друга. Поворот фугры вокруг своей оси должен осуществляться таким образом, чтобы
не были задеты другие фигуры, стенки, дно ящика.
3.2. Описание алгоритма и/или функционирования программы

3.3. Описание и обоснование выбора метода организации данных.ДанныеМетод
организации
ФигураДвумерный массив-наиболее естественное представление, например:

ЯщикДвумерный массив, элемент которого-целое число - соответствует
свободной или занятой ячейке.
Каталог фигурМассив из приведенных выше матриц.
Ширина, высота ящика,количество цветов и фигур; флаги наложения,
достижения дна ящика, свободной ячейки и др.Константы

3.4. Описание и обоснование выбора состава технических и программных средств.
Для написания программы был выбран язык Паскаль. Отказ от библиотеки Turbo
Vision был продиктован невозможностью работы с этой библиотекой в графическом
режиме.
4. Ожидаемые технико-экономические показатели.
Ожидаемая разработка будет отличаться низкими требованиями к аппаратной части
ЭВМ.
5. Источники, используемые при разработке.
При разработке используется статья "Новый мотор для старой идеи" из журнала
"Монитор" № 3 за 1994 год.
Руководство (системного) программиста (ГОСТ 19.504-79).
1. Назначение и условие применения программы.
Назначение программы - развлечение играющих, совершенствование их координации и
логического мышления. Программа может применяться в качестве игровой на разных
типах персональных компьютеров и распространяется на условиях freeware.
2. Характристики программы.
Программа запускается под управлением операционной системы MS-DOS версии 3.30 и
выше из каталога, в котором содержится драйвер видеоадаптера egavga.bgi. Для её
работы требуется от 32 килобайтов свободной оперативной памяти, видеоадаптер
EGA/VGA и процессор 8086/8088 и выше.
3. Обращение к программе.
Обращение к программе осуществляется командой tetris.
4. Входные и выходные данные.
Входные данные - коды нажатых в режиме реального времени клавиш. Выходные данные
- графическая информация на дисплее.
5. Сообщения (сообщения системному программисту).
Для нормальной (без замедления) работы программы на ЭВМ AT 286 или ЭВМ
PC XT рекомендуется уменьшить значение, присваиваемое переменной speed, в 2-3
раза. По аналогии рекомендуется увеличить это значение при использовании
программы на ЭВМ AT 486 и PENTIUM. После этого программу рекомендуется
перекомпилировать.
6. Структура программы.
Исходный текст программы хранится в 1-м файле: tetris.pas.
Компиляция в турбо-среде осуществляется с использованием файла tetris.pas.
7. Настройка программы.
Программа готова к работе, настройки не требует.
8. Проверка программы.
Проверка работоспособности программы осуществляется в следующих случаях:
- независание фигуры при падении;
- падение фигуры до дна ящика;
- невыход фигуры за границы ящика;
- сдвиг фигуры и поворот её на расстоянии от стенок;
- сдвиг фигуры вблизи стенки и поворот её (при этом не должно происходить
наложение фигуры на границу ящика);
- неналожение фигуры при достижении лежащих на дне ящика других фигур;
- изъятие слоя, не содержащего пустых ячеек (все ячейки заполнены квадратами
фигур);
- "оседание" слоев при изъятии слоя, не содержащего пустых ячеек;
- окончание игры при заполнении ящика или по команде игрока.
9. Дополнительные возможности.
Дополнительные возможности отсутствуют.
Руководство оператора (пользователя) (ГОСТ 19.505-79).
1. Назначение программы.
Назначение программы - развлечение играющих, совершенствование их координации и
логического мышления.
2. Условия выполнения программы.
Программа запускается под управлением операционной системы MS-DOS версии 3.30 и
выше из каталога, в котором содержится драйвер видеоадаптера egavga.bgi. Для её
работы требуется от 32 килобайтов свободной оперативной памяти, видеоадаптер
EGA/VGA и процессор 8086/8088 и выше.
3. Выполнение программы.
Запуск программы осуществляется командой tetris из каталога, содержащего файлы
tetris.exe и egavga.bgi. При запуске появляется окно с названием программы,
прекратить вывод которого можно нажатием на клавишу . После этого на
экране появляется ящик с падающими фигурами. Управление игрой осуществляется
следующими клавишами:Название клавишиВыполняемая функция
Стрелка вправоСдвиг фигуры вправо
Стрелка влевоСдвиг фигуры влево
Стрелка вверхПоворот фигуры вокруг собственной оси
Стрелка внизПадение фигуры до дна ящика
ESCОкончание игры

4. Сообщения оператору.
При работе прогрммы на машинах PC AT 286 или PC XT рекомендуется уменьшить
значения, присваиваемые переменной speed в 2-3 раза для того, чтобы скорость
падения фигур была приемлемой для игры.
Приложения отсутствуют.
Описание программы (ГОСТ 19.402-78)
1. Общие сведения.
Программа называется "TETRIS", является классической версией отечественной игры
ТЕТРИС. Программа написана на языке Pascal в интегрированной среде Turbo Pascal
v7.0. Для её выполнения требуется компилятор с этого языка и ОС. Техническая
документация написана с использованием программных продуктов Microsoft Word 97 и
Meta Design 4.0.
2. Функциональное назначение.
Данная программа является игровой, она применяется для развлечения
пользователей, совершенствования их координации движения и логического мышления.
3. Описание логической структуры.
Описание логической структуры приведено на схемах, находящихся в приложении ( №
3.1a)
4. Используемые технические средства.
Программа была написана и откомпилирована на ЭВМ Pentium-233 MMX/32/2.1/SVGA
.28, оснащенной устройством печати HP LJ-6L.
5. Вызов и загрузка.
Программа хранится в файлe tetris.pas; программа вызывается на выполнение
командой tetris.
6. Входные данные.
1) клавиши: "RIGHT", "LEFT", "UP", "DOWN" или "ESC" - вводимые в процессе игры в
режиме реального времени. Организованы в виде символьных переменных.
7. Выходные данные.
Информация, выводимая на экран в графическом режиме: рисунок ящика, падающие и
лежащие на дне фигуры. Организованы в виде двумерных массивов.
Приложение содержит листинг программы на языке Turbo Pascal.
Выводы по задаче.
В результате использованггия бета-версии программы не было получено жалоб об
отклонениях в правилах игры по сравнению с общепринятыми стандартами,
наложенными многочисленными версиями игры TETRIS. Это позволяет сделать вывод о
соответствии алгоритма постановке задачи. Выдача информации наглядна : на экране
постоянно отображена игровая ситуация. Текст программы удобочитаем, т.к.
содержит комментарии, поясняющие суть той или иной ситуации. Текст программы
содержится в приложении.
Заключение.
В ходе курсовой работы мною были изучены некоторые аспекты программирования на
языке Turbo Pascal. При оформлении курсовой работы был получены навыки
оформления программной документации в соответствии с Единой Системой Программной
Документации, а также большой практический опыт работы в Turbo Pascal v7.0,
Microsoft Word 97, Meta Design v4.0, Microsoft Excel 97 ( хотя освоение этих
программных продуктов не было целью курсовой работы, данные навыки нельзя
считать бесполезными ). Теоретические сведения были закреплены практическими
занятиями.