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

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

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

i>

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

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

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

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

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

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

     

     

     

     

     

     

     

     

     

     

     

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

     

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

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

    1. Определения размера будущих клеток, при помощи двух переменных (h1, w1, координаты верхней левой и правой нижней точек);
    2. При помощи процедуры SetFillStyle, задаем нужный цвет и стиль заполнения. Цвет выберем синий, а стиль заполнения возьмем SolidFill сплошная заливка текущем цветом, т.е. синим.
    3. При помощи процедуры Bar вычерчиваем на экране квадрат.
    4. Чтобы данные действия не повторять 16 раз, используем инструкцию For.
    5. Прорисовка рамки.

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

     

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

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

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

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

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

     

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

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

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

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

    1. Выбор элемента массива;
    2. Проверка, является ли данный элемент пробелом;
    3. Присвоение координат строки и столбца переменным.

     

     

     

     

     

     

    НетНет

     

     

    Да

     

     

     

     

     

    Схема 6 - Раздел Поиск

     

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

    При помощи инструкции For поочередно будем выбирать каждый элемент массива.

     

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

    При помощи инструкции If, сравниваем каждый элемент массива с пробелом.

     

    1. Запоминание координат пробела.

    Переменным strok и Stolb присваиваем координаты пустого элемента.

    1. Ввод направления перехода.

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

    Данный раздел алгоритма реализован в процедуре Napravlenie.

    Фактически некоторой переменной ch (типа char) присваивается код нажатой клавиши.

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

    1. Пользователю предлагается, при помощи курсора, ввести направления перехода.
    2. После того как пользователь, нажал кнопку на клавиатуре, код клавиши присваивается переменной ch, при помощи функции readkey.

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

     

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

    В данном разделе, в зависимости от направления перехода, выбранное ранее при помощи курсора, и местоположение пустой клетки, происходит перемещение:

    1. Стрелка влево перемещает влево цифру, стоящую справа от пустой клетки;
    2. Стрелка вправо перемещает вправо цифру стоящую слева от пустой клетки;
    3. Стрелка вниз перемещает вниз цифру стоящую сверху от пустой клетки;
    4. Стрелка вверх перемещает вверх цифру стоящую снизу от пустой клетки.

    Данный алгоритм реализован в процедуре Zamena.

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

    1. Выбор направления перестановки;
    2. Перемещение клеток;
    3. Запись об очередном сделанном ходе.

     

     

     

     

     

     

     

     

     

     

     

     

    Схема 7 - Раздел Замена.

     

    1. Выбор направления перестановки.

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

     

    1. Перемещение клеток.

    В зависимости от значений переменных Strok, Stolb, которым было присвоено координаты пустого элемента в масси?/p>