омки кнопки будуть рухатися, а вигляд вікна змінюватися. Тому необхідно точно задати геометричні параметри об'єктів. Налаштовувати параметри будемо, змінюючи властивості Top, Left, Height, Width компонентів. Параметри повинні бути наступними:
В
У чому полягає хід у грі? У тому, що одна з фішок-кнопок переноситься на вільне місце. Це означає, що достатньо вказати, який фішкою треба піти. Якщо фішка може зробити хід, то він тільки один. p align="justify"> Отже, користувач може вибрати хід, клацнувши на одній з кнопок. Тобто ми будемо обробляти подія OnClick (При клацанні). p align="justify"> Але ми повинні розрізняти кнопки, а також знати, де вони знаходяться і де знаходиться вільна клітина. Тому ми поступимо так: будемо зберігати додаткові дані прямо у властивостях об'єкта-кнопки. Для цього нам потрібно В«вільнеВ» властивість. Така властивість є: всі компоненти системи Delphi надають властивість Tag, яке програміст може використовувати на свій розсуд. p align="justify"> Властивість Tag може зберігати будь-яке ціле число. Нам потрібно зберігати два числа. По-перше, номер клітки, в якій знаходиться кнопка, а у других, ознака В«кольоруВ» фішки (від нього залежить, в який бік вона може ходити). Ці дані легко В«упакуватиВ» в одне ціле число: помножимо номер клітки на 2 і, якщо фішка синя, додамо до нього одиницю. Таке значення легко В«розібратиВ» назад на складові. Розділимо його на 2. Приватне дасть номер клітини, а залишок буде ознакою кольору фішки. p align="justify"> Хід роботи.
1. Розмістимо на формі компонент Panel (401 x 65). На панелі розташуємо 6 компонентів BitBtn (панель Additional) розміром 49 на 49. Властивість Top всіх компонентів буде дорівнює 8, Left - 64,120,232,288,344. br/>В
. Створіть за допомогою графічного редактора зображення червоного і синього трикутників або будь-яких інших фігур на ваш смак і збережіть їх у форматі bmp. Потім, використовуючи властивість Glyph компонента, помістіть зображення на кнопки. br/>
3. Тепер можна задати значення властивості Tag для всіх кнопок. По черзі виберемо фішки зліва направо і задамо для властивості Tag значення, наведені в таблиці. br/>
Значення свойстваКомментарий2первая клітина, червона фішка4вторая клітина, червона фішка6третья клітина, червона фішка11пятая клітина, синя фішка13шестая клітина, синя фішка15седьмая клітина, синя фішка
. Опишемо глобальну змінну n, в якій будемо зберігати номер порожньої клітки і змінну win, в якій буде міститися кількість ходів. p align="justify"> var1: TForm1;
n: integer = 4;: integer = 24;
Тут ми не тільки описуємо потрібні змінні, але і відразу присвоюємо їм початкове значення. Спочатку у нас порожня четверта клітинка, звідси і вибір цього числа, 24 - максимально можливе число ходів. p align="justify">. Виберемо першу кнопк...