5.3.2 Заповнення табло випадковими цифрами.
У пам'яті комп'ютера створюється табло, в якому, в подальшому будуть проводитися перестановки. Табло складається з шістнадцяти клітин (чотири рядки і чотири стовпці), яке заповнюється п'ятнадцятьма, неповторяющимися цифрами від 1 до 15 і одним порожнім клітиною.
Даний розділ реалізований за допомогою процедури Tablo. Фактично табло, яке описується раніше це двовимірний масив з цифрами від 1 до 15 і нуль. Але відображення цифр на екрані і нуля, замість порожнього елемента, робить табло не красивим. Звідси випливає, що двовимірний масив, повинен містити рядкові або символьні елементи.
Наступного моментом реалізації даної процедури, є заповнення табло випадковими цифрами. Для заповнення табло випадковими цифрами використовується функція random, яка є генератором випадкових чисел, але працює відповідно тільки з цифрами, а у нас строковий двовимірний масив.
Проаналізувавши вище сказане, приходимо до того, що необхідно створити два масиви. Один одновимірний з шістнадцяти елементів типу integer, другий двовимірний, чотири на чотири, типу string. Спочатку одновимірний масив, в випадковому порядку, заповнюється цілими неповторяющимися цифрами від 1 до 16, а потім в залежності від розташування цифр, заповнюється двовимірний строковий масив. Наприклад, якщо перший елемент одновимірного масиву дорівнює цифрі 11 тоді першому елементу двовимірного масиву буде присвоєно рядок «11».
Загальний алгоритм даного розділу полягає в наступному (Схема 4):
- Вибір випадкового числа;
- Перевірка на наявність збігів у масиві;
- Занесення інформації в масив;
- Перевірка заповнений масив;
- Заповнення двовимірного масиву.
Схема 4 - Розділ Табло
5.3.2.1 Вибір випадкового числа.
Деякої змінної b присвоюється випадкове число, за допомогою функції random. При чому функція random обмежена інтервалом від 1 до 16.
5.3.2.2 Перевірка на наявність збігів у масиві
Мінлива b порівнюється з кожним елементом масиву bs [i], за допомогою інструкцій For і if. Якщо такий елемент вже присутній в одновимірному масиві, тоді змінної b, знову присвоюється випадкове число. Так відбувається до тих пір, поки змінної b не буде надано цифра, якої ще немає в масиві.
5.3.2.3 Занесення інформації в масив.
Значення змінної b, яке було знайдено раніше, вноситься в масив bs [i], за останнім елементом внесений в масив
5.3.2.4 Перевірка заповнений масив.
Програма перевіряє чи заповнений масив повністю, якщо немає, то алгоритм починається з пункту 5.3.2.1.
У підсумку ми маємо одновимірний масив заповнений, в випадковому порядку неповторним цифрами від 1 до 16.
5.3.2.5 Заповнення двовимірного масиву.
Заповнення двовимірного масиву, за допомогою інструкції For і змінних i і j, які позначають стовпець і рядок.
Алгоритм заповнення двовимірного масиву полягає в наступному:
- Спочатку змінної z присвоюється одиниця. Дана змінна нам необхідна як лічильник.
- Кожному елементу j рядка і i стовпця присвоюється строковий елемент, в залежності від цифри стоїть під номером z в одновимірному масиві, якщо поточної елемент одновимірного масиву містить цифру 8, то поточного елементу двовимірного масиву присвоюється строковий елемент «8». Винятком становить цифра 16. В цьому випадку в двовимірний масив вводиться пробіл. Вибір строкового елементу здійснюється за допомогою інструкції case.
- Так відбувається до тих пір, поки двовимірний масив не буде повністю заповнений.
5.3.3 Висновок табло.
В даному розділі на екрані з'являється табло з поточної комбінацією цифр. Спочатку, табло заповнюється випадковим чином п. 5.3.2, а в подальшому на екрані буде відображено поточний стан цифр на табло, в залежності від зроблених користувачем ходів.
Даний розділ реалізований в процедурі Vivod.
Загальний алгоритм даного розділу полягає в наступному (Схема 5):
- Висновок елементів масиву по верх клітин табло.
Схема 5 - Розділ Висновок
5.3.3.1 Промальовування клітин.
Малювання клітин здійснюється в наступному порядку:
- Визначення розміру майбутніх клітин, за допомогою двох змінних (h1, w1, координати верхньої лівої і правої нижньої точок);
- За допомогою процедури SetFillStyle, задаємо потрібний колір і стиль заповнення. Колір виберемо синій, а стиль заповнення візьмемо SolidFill - суцільна заливка поточному кольором, тобто синім.
- За допомогою процедури Bar вичерчуємо на екрані квадрат.
- Щоб дані дії не повторювати 16 разів, використовуємо інструкцію For.
5.3.3.2 Промальовування рамки.
Для того, щоб табло мало закінчений вигляд, помістимо раніше створені клітини в рамку, за допомогою процедури Line.
5.3.3.3 Висновок елементів масиву по верх клітин табло.
У підсумку на екрані з'являється табло з шістнадцятьма клітинами, залишається лише в центр цих клітин помістити цифри з двовимірного масиву.
Так як ми знаходимося в графічному режимі, то для виведення елементів двовимірного масиву використовуємо процедуру OutTextXY.
У підсумку на екрані з'явиться досить акуратне і не погано оформлене табло з клітинами, в центрі кожної з яких, знаходиться цифра.
У майбутньому, коли користувач буде переміщати клітини, він фактично буде здійснювати операції з масивом і на екран буде виводитися інформація з масиву, в якому здійснена перестановка, а клітини залишаться незмінними.
Інформація про роботу «Гра" П'ятнашки "»
помилок на цьому шляху, тобто установки або прояви характеру дорослих членів сім'ї, і самі по собі ускладнюють стосунки із дітьми. Розділ 2. Емпіричне дослідження подолання страхів у дітей дошкільного та молодшого шкільного віку 2.1 Опис експериментальної вибірки і методів дослідження Визначити боїться дитини зазвичай не складає труднощів. Про це ми вже не раз говорили.
Dialogs 2.3.1.2 Зовнішній вигляд форми 2.3.1.2 Вхідні дані положення фішок; 2.3.1.3 Проміжні дані перевірка на наявність «зібраності» мозайки; 2.3.1.4 Вихідні дані результат гри. 2.3.1.5 Блок-схеми алгоритмів Додаток А, стор. 13 2.3.1.6 Текст модуля Додаток Б, стор. 25 ДОДАТКИ.