Игра "Пятнашки"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

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

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

 

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

 

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

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

  1. Инициализация графического режима;
  2. Заполнение в памяти компьютера табло случайными цифрами;
  3. Вывод табло на экран;
  4. Ввод направления перехода;
  5. Поиск пустого элемента;
  6. Перемещение элементов табло;
  7. Проверка;
  8. Итог;
  9. Ввод личных данных.

Схематично, данный алгоритм, показан на схеме 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):

  1. Выбор случайного числа;
  2. Проверка на наличие совпадений в массиве;
  3. Занесение информации в массив;
  4. Проверка заполнен ли массив;
  5. Заполнение двумерного массива.

 

 

 

 

 

 

 

Да

 

 

Нет

 

 

 

 

Нет

 

 

Да

 

 

 

 

 

Схема 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, которые обозначают столбец и строку.

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

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