Игра "Пятнашки"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
i>
- Вывод табло.
В данном разделе на экране появляется табло с текущей комбинацией цифр. Первоначально, табло заполняется случайным образом п. 5.3.2, а в дальнейшем на экране будет отражено текущее состояния цифр на табло, в зависимости от сделанных пользователем ходов.
Данный раздел реализован в процедуре Vivod.
Общий алгоритм данного раздела заключается в следующем (Схема 5):
- Прорисовка клеток;
- Прорисовка рамки;
- Вывод элементов массива по верх клеток табло.
Схема 5 - Раздел Вывод
- Прорисовка клеток.
Рисование клеток осуществляется в следующем порядке:
- Определения размера будущих клеток, при помощи двух переменных (h1, w1, координаты верхней левой и правой нижней точек);
- При помощи процедуры SetFillStyle, задаем нужный цвет и стиль заполнения. Цвет выберем синий, а стиль заполнения возьмем SolidFill сплошная заливка текущем цветом, т.е. синим.
- При помощи процедуры Bar вычерчиваем на экране квадрат.
- Чтобы данные действия не повторять 16 раз, используем инструкцию For.
- Прорисовка рамки.
Для того, чтобы табло имело законченный вид, поместим ранее созданные клетки в рамку, при помощи процедуры Line.
- Вывод элементов массива по верх клеток табло.
В итоге на экране появляется табло с шестнадцатью клетками, остается лишь в центр этих клеток поместить цифры из двумерного массива.
Так как мы находимся в графическом режиме, то для вывода элементов двумерного массива используем процедуру OutTextXY.
В итоге на экране появится достаточно аккуратное и не плохо оформленное табло с клетками, в центре каждой из которых, находится цифра.
В будущем, когда пользователь будет перемещать клетки, он фактически будет совершать операции с массивом и на экран будет выводиться информация из массива, в котором осуществлена перестановка, а клетки останутся неизменными.
- Поиск пустого элемента.
В данном разделе осуществляется поиск пустого элемента, чтобы в дальнейшем относительно него можно было бы осуществлять передвижение
Данный раздел реализован в процедуре Poisk. Программа при помощи инструкции For и переменных i и j сравнивает каждый элемент двумерного массива AS, с пустым элементом, при помощи инструкции IF и когда находит, присваивает значения переменных i и j переменным strok и stolb. Таким образом, переменные strok и stolb как бы являются координатами пустого элемента.
Общий алгоритм данного раздела заключается в следующем (Схема 6):
- Выбор элемента массива;
- Проверка, является ли данный элемент пробелом;
- Присвоение координат строки и столбца переменным.
НетНет
Да
Схема 6 - Раздел Поиск
- Выбор элемента массива.
При помощи инструкции For поочередно будем выбирать каждый элемент массива.
- Проверка, является ли данный элемент пробелом.
При помощи инструкции If, сравниваем каждый элемент массива с пробелом.
- Запоминание координат пробела.
Переменным strok и Stolb присваиваем координаты пустого элемента.
- Ввод направления перехода.
В данном разделе пользователю предлагается выбрать направление перехода клеток с цифрами, относительно пустой клетки. Выбор осуществляется при помощи курсора, на клавиатуре.
Данный раздел алгоритма реализован в процедуре Napravlenie.
Фактически некоторой переменной ch (типа char) присваивается код нажатой клавиши.
Алгоритм процедуры заключается в следующем:
- Пользователю предлагается, при помощи курсора, ввести направления перехода.
- После того как пользователь, нажал кнопку на клавиатуре, код клавиши присваивается переменной ch, при помощи функции readkey.
К примеру, если пользователь ввел направление курсора вверх, это означает, что пользователь нажал служебную клавишу под кодом 72.
- Перемещение элементов табло.
В данном разделе, в зависимости от направления перехода, выбранное ранее при помощи курсора, и местоположение пустой клетки, происходит перемещение:
- Стрелка влево перемещает влево цифру, стоящую справа от пустой клетки;
- Стрелка вправо перемещает вправо цифру стоящую слева от пустой клетки;
- Стрелка вниз перемещает вниз цифру стоящую сверху от пустой клетки;
- Стрелка вверх перемещает вверх цифру стоящую снизу от пустой клетки.
Данный алгоритм реализован в процедуре Zamena.
Общий алгоритм данного раздела заключается в следующем (Схема 7):
- Выбор направления перестановки;
- Перемещение клеток;
- Запись об очередном сделанном ходе.
Схема 7 - Раздел Замена.
- Выбор направления перестановки.
Ранее пользователь сделал ход, а это значит, что мы имеем нажатую служебную клавишу, под каким либо номером. При помощи инструкции IF и функции ord, выбирается направления перестановки элементов.
- Перемещение клеток.
В зависимости от значений переменных Strok, Stolb, которым было присвоено координаты пустого элемента в масси?/p>