47044 (608044), страница 2

Файл №608044 47044 (Игра "Пятнашки") 2 страница47044 (608044) страница 22016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

При помощи процедуры assign(f,'fhelp1.txt'), связываем файловую переменную f с файлом fhelp1.txt, к которому происходит обращение. В данном варианте не описывается полный путь к файлу, подразумевая, что данный файл находится в корне каталога с программой. Это необходимо в тех случаях, когда пользователь захочет перенести файлы программы в любое удобное для него место, если бы был прописан полный путь, тогда пользователь не мог бы перемещать файлы программы, а в случае перемещения, информация из раздела Описание, не выводилась бы на экран. В этом случае, необходимо было бы точно устанавливать файлы программы, в то место, где было бы прописано. Далее при помощи процедуры reset(f) открываем файл для чтения.

5.1.2 Вывод информации на экран осуществляется при помощи инструкций readln(f,g1); writeln(g1). В данной инструкции, переменной g1, сначала при помощи readln присваивается строка из файла fhelp1.txt, а затем при помощи writeln выводится на экран содержимое переменной g1.

5.1.3 Закрытие файла, осуществляется при помощи процедуры close (f);

5.2 Раздел Управление.

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

Раздел реализован при помощи процедуры help. Данная процедура считывает информацию из файла fhelp.txt и выводит считанную информацию на экран для ознакомления пользователю.

Реализована данная процедура, точно таким же способом, как и в разделе 5.1 Описание, за исключением того, что обращение происходит к файлу fhelp.txt, по этому подробно останавливаться на данном разделе не имеет смысла.

5.3 Раздел Игра.

Данный раздел является основным. Именно в этом разделе происходят основные события. Реализован данный алгоритм при помощи процедуры Game15.

Алгоритм данного раздела заключается в следующем:

  • Инициализация графического режима;

  • Заполнение в памяти компьютера табло случайными цифрами;

  • Вывод табло на экран;

  • Ввод направления перехода;

  • Поиск пустого элемента;

  • Перемещение элементов табло;

  • Проверка;

  • Итог;

  • Ввод личных данных.

Схематично, данный алгоритм, показан на схеме 3.



Инициализация графического режима


Заполнение табло случайными числами



Поиск пустого элемента





Перемещение элементов табло




Нет

Нет

Да


Да


Нет


Схема 3 – Раздел Игра.

5.3.1 Инициализация графического режима осуществляется в этой же процедуре Game15, при переходе из Главного меню программы в раздел ИГРА. Переход к графическому режиму осуществляется, при помощи процедуры InitGraph (grDriver, grMode, grPath), где grDriver – это используемы программой драйвер видеоадаптера (VGA), grMode – режим работы видеосистемы (VGAHi), grPath – это место нахождения файла EGAVGA.BGI на диске (как и в случае с файлами, пишем только имя и расширение файла, а не полный путь, для того чтоб в будущем можно было перемещать файлы программы).

      1. Заполнение табло случайными цифрами.

В памяти компьютера создается табло, в котором, в дальнейшем будут производиться перестановки. Табло состоит из шестнадцати клеток (четыре строки и четыре столбца), которое заполняется пятнадцатью, неповторяющимися цифрами от 1 до 15 и одной пустой клеткой.

Данный раздел реализован при помощи процедуры Tablo. Фактически табло, которое описывается ранее это двумерный массив с цифрами от 1 до 15 и ноль. Но отображение цифр на экране и ноля, вместо пустого элемента, делает табло не красивым. Отсюда следует, что двумерный массив, должен содержать строковые или символьные элементы.

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

Проанализировав выше сказанное, приходим к тому, что необходимо создать два массива. Один одномерный из шестнадцати элементов типа integer, второй двумерный, четыре на четыре, типа string. Сначала одномерный массив, в случайном порядке, заполняется целыми неповторяющимися цифрами от 1 до 16, а затем в зависимости от расположения цифр, заполняется двумерный строковый массив. К примеру, если первый элемент одномерного массива равен цифре 11 тогда первому элементу двумерного массива будет присвоено строка «11».

Общий алгоритм данного раздела заключается в следующем (Схема 4):

    • Выбор случайного числа;

    • Проверка на наличие совпадений в массиве;

    • Занесение информации в массив;

    • Проверка заполнен ли массив;

    • Заполнение двумерного массива.


Выбор случайного числа




Да


Нет

Занесение информации в массив




Нет


Да

Заполнение двумерного массива




Схема 4 – Раздел Табло

        1. Выбор случайного числа.

Некоторой переменной b присваивается случайное число, при помощи функции random. При чем функция random ограничена интервалом от 1 до 16.

        1. Проверка на наличие совпадений в массиве

Переменная b сравнивается с каждым элементом массива bs[i], при помощи инструкций For и if. Если такой элемент уже присутствует в одномерном массиве, тогда переменной b, вновь присваивается случайное число. Так происходит до тех пор, пока переменной b не будет присвоена цифра, которой еще нет в массиве.

        1. Занесение информации в массив.

Значение переменной b, которое было найдено ранее, вносится в массив bs[i], за последним элементом внесенный в массив

        1. Проверка заполнен ли массив.

Программа проверяет заполнен ли массив полностью, если нет, то алгоритм начинается с пункта 5.3.2.1.

В итоге мы имеем одномерный массив заполненный, в случайном порядке неповторяющемся цифрами от 1 до 16.

        1. Заполнение двумерного массива.

Заполнение двумерного массива, при помощи инструкции For и переменных i и j, которые обозначают столбец и строку.

Алгоритм заполнения двумерного массива заключается в следующем:

  • Первоначально переменной z присваивается единица. Данная переменная нам необходима как счетчик.

  • Каждому элементу j строки и i столбца присваивается строковый элемент, в зависимости от цифры стоящей под номером z в одномерном массиве, если текущей элемент одномерного массива содержит цифру 8, то текущему элементу двумерного массива присваивается строковый элемент «8 ». Исключением составляет цифра 16. В этом случае в двумерный массив вводится пробел. Выбор строкового элемента осуществляется при помощи инструкции case.

  • Так происходит до тех пор, пока двумерный массив не будет полностью заполнен.

      1. Вывод табло.

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

Данный раздел реализован в процедуре Vivod.

Общий алгоритм данного раздела заключается в следующем (Схема 5):

  • Прорисовка клеток;

  • Прорисовка рамки;

  • Вывод элементов массива по верх клеток табло.



Прорисовка клеток



Прорисовка рамки






Схема 5 - Раздел Вывод

        1. Прорисовка клеток.

Рисование клеток осуществляется в следующем порядке:

  • Определения размера будущих клеток, при помощи двух переменных (h1, w1, координаты верхней левой и правой нижней точек);

  • При помощи процедуры SetFillStyle, задаем нужный цвет и стиль заполнения. Цвет выберем синий, а стиль заполнения возьмем SolidFill – сплошная заливка текущем цветом, т.е. синим.

  • При помощи процедуры Bar вычерчиваем на экране квадрат.

  • Чтобы данные действия не повторять 16 раз, используем инструкцию For.

        1. Прорисовка рамки.

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

        1. Вывод элементов массива по верх клеток табло.

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

Так как мы находимся в графическом режиме, то для вывода элементов двумерного массива используем процедуру OutTextXY.

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

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

      1. Поиск пустого элемента.

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

Данный раздел реализован в процедуре Poisk. Программа при помощи инструкции For и переменных i и j сравнивает каждый элемент двумерного массива AS, с пустым элементом, при помощи инструкции IF и когда находит, присваивает значения переменных i и j переменным strok и stolb. Таким образом, переменные strok и stolb как бы являются координатами пустого элемента.

Общий алгоритм данного раздела заключается в следующем (Схема 6):

  • Выбор элемента массива;

  • Проверка, является ли данный элемент пробелом;

  • Присвоение координат строки и столбца переменным.



Выбор элемента массива



Н ет Нет

Характеристики

Тип файла
Документ
Размер
15,35 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее