Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



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

Так как мы находимся в графическом режиме, то для вывода элементов двумерного массива используем процедуру 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, которым было присвоено координаты пустого элемента в массиве (5.3.4) и выбранного направления, осуществляется перемещение.

Например, пользователь ввел направление курсора вверх, это означает, что пользователь нажал служебную клавишу под кодом 72, тогда, при помощи инструкции if и функции ord (if ord(ch)=72 then), осуществляется перемещение.

Перемещение осуществляется по следующему принципу: пустой клетки, а именно элементу массива с координатами as[strok, stolb], присваивается содержимое элемента стоящего под пустой клеткой (as[strok, stolb]: = as[strok+1, stolb]; ), а соответственно элементу, стоящему под пустой клеткой присваивается пробел (as[strok+1, stolb]: =' '; ).

 


Поделиться:



Последнее изменение этой страницы: 2019-10-24; Просмотров: 168; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.014 с.)
Главная | Случайная страница | Обратная связь