Выполнение программы в среде программирования Турбо Паскаль. Описание основного алгоритма. Вывод информации на экран. Инициализация графического режима. Проверка на наличие совпадений в массиве. Считывание результатов из файла. Руководство пользователя.
Аннотация к работе
Тема Разработать программу, моделирующую игру «Пятнашки»Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков - это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания. Так, высокоуровневые языки стремятся не только облегчить решение сложных программных задач, но и упростить портирование программного обеспечения. Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остается, в идеале, неизменным. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков.Применения данной программы возможны везде, ведь в любой работе нужен отдых, а данная простенькая игра поможет расслабиться и отвлечься от повседневных дел. Суть самой игры заключается в следующем: - Игрок на экране видит табло, которое разбито на 16 клеток. В общем виде данное табло можно представить в виде таблицы 1: Таблица 1 - Образец табло.Для того чтобы не усложнять листинг программы, вся программа разбита на процедуры, каждая из которых отвечает за определенное действие. Всю программу можно разделить на два основных раздела: - Основные процедуры, т.е. те процедуры, которые отвечают за саму игру и взаимодействие с пользователем во время игры; Основные процедуры. procedure Tablo; Данная процедура формирует табло, заполненное случайными, неповторяющимися цифрами от 1 до 15 и одной пустой клеткой. Если игра уже идет то данная процедура выводит на экран ту комбинацию цифр, которая определена пользователем во время игры. procedure Napravlenie; В данной процедуре пользователю, при помощи курсора, предлагается ввести направление перехода. Также в данной процедуре считывается каждый ход пользователя, чтобы в дальнейшем, если пользователь разложит требуемый расклад быстрее, чем игроки, игравшие ранее, можно было ввести информацию об игроке в файл. procedure proverka; После совершения перестановки цифр, а иными словами после очередного хода, программа сравнивает расстановку цифр в двумерной матрицы.Для запуска игры достаточно любого компьютера, на котором установлена хоть какая-нибудь операционная система, семейство Windows кроме 64 битных версий.Несмотря на простоту данной программы, написание алгоритма оказалось достаточно не простой задачей. Основной алгоритм программы разбит на четыре раздела (схема 1): - Описание;Данный раздел предназначен для ознакомления пользователем, с возможностями, программы. Данная процедура считывает информацию из файла fhelp1.txt и выводит считанную информацию на экран, для ознакомления пользователю. Общий алгоритм данного раздела заключается в следующем (Схема 2): - Чтение информации из файла fhelp1.txt; В данном варианте не описывается полный путь к файлу, подразумевая, что данный файл находится в корне каталога с программой. Это необходимо в тех случаях, когда пользователь захочет перенести файлы программы в любое удобное для него место, если бы был прописан полный путь, тогда пользователь не мог бы перемещать файлы программы, а в случае перемещения, информация из раздела Описание, не выводилась бы на экран.В данном разделе, пользователю предлагается ознакомиться с клавишами управления.Переход к графическому режиму осуществляется, при помощи процедуры INITGRAPH (GRDRIVER, GRMODE, GRPATH), где GRDRIVER - это используемы программой драйвер видеоадаптера (VGA), GRMODE - режим работы видеосистемы (VGAHI), GRPATH - это место нахождения файла EGAVGA.BGI на диске (как и в случае с файлами, пишем только имя и расширение файла, а не полный путь, для того чтоб в будущем можно было перемещать файлы программы). Так происходит до тех пор, пока переменной b не будет присвоена цифра, которой еще нет в массиве. Значение переменной b, которое было найдено ранее, вносится в массив bs[i], за последним элементом внесенный в массив Каждому элементу j строки и i столбца присваивается строковый элемент, в зависимости от цифры стоящей под номером z в одномерном массиве, если текущей элемент одномерного массива содержит цифру 8, то текущему элементу двумерного массива присваивается строковый элемент «8 ». В будущем, когда пользователь будет перемещать клетки, он фактически будет совершать операции с массивом и на экран будет выводиться информация из массива, в котором осуществлена перестановка, а клетки останутся неизменными.В данном разделе для пользователя отображается информация о лучших игроках, которые за наименьшее количество ходов собрали требуемую комбинацию. Данный раздел реализован при помощи процедуры result. Данная процедура считывает информацию из файла res.