>
- При допомогою процедури Bar вичерчуємо на екрані квадрат. p> - Щоб дані дії не повторювати 16 разів, використовуємо інструкцію For.
5.3.3.2 Промальовування рамки.
Для того, щоб табло мало закінчений вигляд, помістимо раніше створені клітини в рамку, при допомогою процедури Line.
5.3.3.3 Висновок елементів масиву по верх клітин табло.
У підсумку на екрані з'являється табло з шістнадцятьма клітинами, залишається лише в центр цих клітин помістити цифри з двовимірного масиву. p> Так як ми знаходимося в графічному режимі, то для виведення елементів двовимірного масиву використовуємо процедуру OutTextXY.
У підсумку на екрані з'явиться достатньо акуратне і не погано оформлене табло з клітинами, в центрі кожної з яких, знаходиться цифра.
У майбутньому, коли користувач буде переміщати клітини, він фактично буде здійснювати операції з масивом і на екран буде виводитися інформація з масиву, в якому здійснена перестановка, а клітини залишаться незмінними.
5.3.4 Пошук чистого елемента.
У даному розділі здійснюється пошук порожнього елемента, щоб надалі щодо нього можна було б здійснювати пересування
Даний розділ реалізований в процедурі Poisk. Програма за допомогою інструкції For і змінних i і j порівнює кожен елемент двовимірного масиву AS, з порожнім елементом, за допомогою інструкції IF і коли знаходить, привласнює значення змінних i і j змінним strok і stolb. Таким чином, змінні strok і stolb як би є координатами порожнього елемента. p> Загальний алгоритм даного розділу полягає в наступному (Схема 6):
- Вибір елемента масиву;
- Перевірка, чи є даний елемент пропуском;
- Присвоєння координат рядка і стовпчика змінним.
Ні Ні
Так
В
Схема 6 - Розділ Пошук
5.3.4.1 Вибір елемента масиву.
За допомогою інструкції For черзі будемо вибирати кожен елемент масива.
5.3.4.2 Перевірка, чи є даний елемент пропуском.
За допомогою інструкції If, порівнюємо кожен елемент масиву з пропуском.
5.3.4.3 Запам'ятовування координат пропусків.
Змінним strok і Stolb присвоюємо координати порожнього елемента.
5.3.5 Введення напрямки переходу.
У даному розділі користувачеві пропонується вибрати напрямок переходу клітин з цифрами, щодо порожньої клітки. Вибір здійснюється за допомогою курсору, на клавіатурі.
Даний розділ алгоритму реалізований в процедурі Napravlenie. p> Фактично деякої змінної ch (типу char) присвоюється код натиснутою клавіші.
Алгоритм процедури полягає в наступному:
- Користувачеві пропонується, за допомогою курсору, ввести напрямки переходу.
- Після того як користувач, натиснув кнопку на клавіатурі, код клавіші привласнюється змінної ch, за допомогою функції readkey.
Наприклад, якщо користувач ввів напрям курсору вгору, це означає, що користувач натиснув службову клавішу під кодом 72.
5.3.6 Переміщення елементів табло.
У даному розділі, в залежності від напрямку переходу, вибране раніше за допомогою курсору, і місце розташування порожній клітини, відбувається переміщення:
- Стрілка вліво - переміщує вліво цифру, що стоїть праворуч від порожньої клітки;
- Стрілка вправо - переміщає вправо цифру стоїть ліворуч від порожньої клітки;
- Стрілка вниз - переміщає вниз цифру стоїть зверху від порожньої клітки;
- Стрілка вгору - переміщує вгору цифру стоїть знизу від порожньої клітки.
Даний алгоритм реалізований в процедурі Zamena.
Загальний алгоритм даного розділу полягає в наступному (Схема 7):
- Вибір напрямки перестановки;
- Переміщення клітин;
- Запис про черговому зробленому ході.
В
Схема 7 - Розділ Заміна.
5.3.6.1 Вибір напрямки перестановки.
Раніше користувач зробив хід, а це означає, що ми маємо натиснуту службову клавішу, під яким або номером. За допомогою інструкції IF і функції ord, вибирається напрями перестановки елементів.
5.3.6.2 Переміщення клітин.
Залежно від значень змінних Strok, Stolb, яким було присвоєно координати порожнього елемента в масиві (5.3.4) і обраного напрямку, здійснюється переміщення.
Наприклад, користувач ввів напрям курсору вгору, це означає, що користувач натиснув службову клавішу під кодом 72, тоді, за допомогою інструкції if і функції ord (...