Гра "Шахи"
Розробка програмного продукту в програмному середовищі C++ Builder на прикладі гри "Шахи". Опис предметної області: правила пересування фігур по шаховій дошці. Концептуальна модель програмного продукту. Керівництва для програміста та користувача.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | отчет по практике |
Язык | украинский |
Дата добавления | 27.02.2015 |
Размер файла | 2,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Державний вищий навчальний заклад
"Чернівецький політехнічний коледж”
Циклова комісія програмування та інформаційних технологій
ЗВІТ
З НАВЧАЛЬНОЇ ПРАКТИКИ
(зі спеціальних дисциплін програмування)
Студента IІІ курсу 531 групи
спеціальність 5.05010301
Макотяк А.С.
Керівник Серьогіна І.В.
м. Чернівці - 2014 рік
Зміст
- Вступ
- Розділ 1. Проектування програмного продукту
- 1.1 Постановка задачі
- 1.2 Опис предметної області
- 1.3 Моделі програмного продукту
- Розділ 2. Опис програмного продукту
- 2.1 Опис середовища розробки C++ Builder:
- 2.2 Керівництво програміста
- 2.3 Керівництво користувача
- Розділ 3. Охорона праці та техніка безпеки
- 3.1 Вимоги до виробничих приміщень
- 3.2 Гігієнічні вимоги до організації і обладнаних робочих місць
- 3.3 Правила техніки безпеки
- Висновки
- Перелік посилань на джерела
- Додатки
Вступ
На сьогоднішній день програмування це дуже актуальна тема бо програми для комп'ютерів полегшують та прискорюють роботу в різних сферах.
Тому від розробників програмного забезпечення (ПЗ) вимагається максимальне володіння різними технологіями створення ПЗ. Одна з найпоширеніших технологій в наш час є об'єктно-орієнтоване програмування.
Borland C++ Builder дозволяє створювати різні програми: від найпростіших одновіконних додатків до програм керування розподіленими базами даних. Як мову програмування в середовищі Borland C++ Builder використовується мова C++. Тому на сьогоднішній день цей продукт є найбільш популярним для розробки проектів під Windows.
Основною метою практики є закріплення вмінь та навичок роботи в середовищі візуального програмування C++Builder, застосовуючи об'єктно-орієнтоване програмування потрібно розробити програмний продукт.
Завданням до навчальної практики є:
– набуття навичок при розробці програмного продукту в програмному середовищі C++ Builder;
– закріплення набутих знань під час теоретичної підготовки на парах;
Під час навчальної практики для виконання завдання було реалізовано наступні дії:
– визначено предметну область завдання;
– сформовано постановку задачі;
– виконано опис структури об'єктів, взаємозв'язків між об'єктами, їх атрибутів, діаграм класів, алгоритмів, діаграм потоків даних;
– розроблено загальну структуру системи;
– реалізовано класи та їх методи, перевизначено операції, визначено базовій та похідні класи, побудова ієрархії класів;
– використано візуальні компоненти для створення зручного інтуїтивно-зрозумілого інтерфейсу.
Звіт складається зі вступу, трьох розділів, висновку, переліку джерел та додатку.
Розділ 1. Проектування програмного продукту
1.1 Постановка задачі
Завданням на навчальну практику була створити програму. Використовуючи технологію об'єктно-орієнтованого програмування, розробити програмний продукт "Імітатор гри в шахи".
В програмному продукті потрібно визначити:
класи;
конструктори відповідних класів;
вивід на екран;
методи реалізації властивостей об'єкта класу;
об'єкти.
Програма повинна містити меню, що дозволяє здійснити перевірку всіх методів класу.
1.2 Опис предметної області
Гра у шахи ведеться двома гравцями за дошкою, що має 64 клітини чорного та білого кольору, фігурами білого та чорного кольорів. Шахова дошка зазвичай називається шахівниця. Шахівниця розміщується таким чином, що її перша горизонталь знаходиться біля гравця, що грає білими. Кожен з гравців має 16 шахових фігур: вісім пішаків, дві тури, двох коней, двох слонів, ферзя та короля. Гравці роблять ходи по черзі, один за одним. Під час кожного ходу гравець може перемістити лише одну фігуру. Виключенням є рокіровка - спільний хід турою та королем. Гру розпочинає той з гравців, що грає фігурами білого кольору. При переміщенні своєї фігури на клітину зайняту фігурою суперника, фігура суперника знімається з дошки. Такий хід називають взяття.
Правила пересування фігур по шаховій дошці:
"Пішак" - пересувається лише вперед по вертикалі. Перший хід пішак - білий з другої, а чорний з сьомої горизонталі може зробити одразу на дві клітини, перестрибнувши через третю або шосту горизонталь. З усіх інших горизонталей пішак може пересуватися лише на одну клітину вперед. Крім цього пішак може взяти будь-яку фігуру супротивника, що знаходиться попереду нього на відстані однієї клітини по діагоналі. Якщо білий пішак досягнув восьмої горизонталі, або чорний першої то він може перетворитися на будь-яку фігуру окрім короля того ж кольору що й пішак.
"Тура" пересувається на будь-яку кількість клітин по вертикалі, або горизонталі
"Кінь" єдина фігура у грі, яка може перестрибувати через інші фігури свої та суперника. Хід конем схожий на літеру "Г". Кінь пересувається на одну клітинку по вертикалі та дві по горизонталі, або навпаки на дві по вертикалі, та одну по горизонталі у будь-якому напрямку.
"Слон" пересувається на будь-яку кількість клітин по діагоналі.
"Король" пересувається на одну клітину по вертикалі, горизонталі або діагоналі.
"Ферзь" (королева) пересувається на будь-яку кількість клітин по вертикалі, горизонталі або діагоналі.
Додаткові правила та винятки при виконанні ходів по шаховій дошці:
не дозволяється робити хід, після якого король гравця, що ходив, опиняється під атакою фігур суперника;
не можна робити хід на клітинку, що зайнята власною фігурою;
фігури не можуть перестрибувати через власні фігури та фігури суперника (єдиний виняток кінь);
спеціальний хід рокірування виконується королем і турою. Цей хід можливий за виконання двох умов: король та тура до цього жодного разу не ходили; тура після, а король до і після виконання рокірування не повинні перебувати під атакою фігур суперника. Рокірування виконується так: король пересувається по горизонталі на дві клітини. Тура після цього встановлюється на клітинку, через яку перестрибнув король під час пересування;
взяття на проході - правило згідно з яким якщо пішак робить хід на дві клітинки та при цьому перестрибує через клітинку, яку атакує пішак супротивника, він може бути вбитий пішаком супротивника. При цьому пішак супротивника пересувається на клітинку, через яку перестрибнув пішак;
перетворення - якщо пішак дійшов до останньої горизонталі, то він перетворюється на будь-яку іншу фігуру того ж кольору, крім короля. Перетворення відбувається одразу з моменту ходу на останню горизонталь. Перелік фігур, на які може перетворюватися пішак, не обмежений тими фігурами, що вже зняті з дошки (наприклад, усі вісім білих пішаків, дійшовши до останньої горизонталі, можуть перетворитися на вісім королев).
1.3 Моделі програмного продукту
Для моделювання програмного продукту використано UML Rational Rose.
Діаграма класів (class diagram) служить для представлення статичної структури моделі системи в термінології класів об'єктно-орієнтованого програмування. На цій діаграмі показують класи, інтерфейси, об'єкти й кооперації, а також їхні відносини.
Модель програмного продукту зображено на діаграмі класів (див. рис.1.1). В ній не зображено всіх класів, але вони працюють аналогічно.
Концептуальна модель виражається у вигляді діаграм варіантів використання. Цей тип діаграм служить для проведення ітераційного циклу загальної постановки завдання разом із замовником. Процес взаємодії користувача з програмним продуктом зображено на діаграмі використання (див. рис. 1.2)
Рис. 1.1 - Модель програмного продукту
Рис. 1.2 - Діаграма використання
програмний користувач гра шаховий
Розділ 2. Опис програмного продукту
2.1 Опис середовища розробки C++ Builder:
Borland C++ Builder - випущене недавно компанією Borland засіб швидкої розробки додатків, що дозволяє створювати додатки на мові C++, використовуючи при цьому середовище розробки і бібліотеку компонентів Delphi. Середовище розробки C++ Builder і основні прийоми, застосовувані при проектуванні користувальницького інтерфейсу.
C++Builder являє собою SDI-додаток, головне вікно, якого містить інструментальну панель, що побудована (ліворуч) і палітру компонентів (праворуч). Крім цього, при запуску C++ Builder з'являються вікно інспектора об'єктів (ліворуч) і форма нового проекту (праворуч). Під вікном форми проекту перебуває вікно редактора коду.
Форми є основою проектів C++Builder. Створення користувальницького інтерфейсу проекту полягає в додаванні у вікно форми елементів об'єктів C++Builder, названих компонентами. Компоненти C++Builder розташовуються на палітрі компонентів, виконаної у вигляді багатосторінкового блокноту. Важлива особливість C++Builder полягає в тому, що він дозволяє створювати власні компоненти та побудовувати палітру компонентів, а також створювати різні версії палітри компонентів для різних проектів (див рис.2.1).
Рис. 2.1 - Зміст заголовного файлу
Компоненти C++Builder розділяються на видимі (візуальні) і невидимі (невізуальні). Візуальні компоненти з'являються під час виконання точно так само, як і під час проектування. Прикладами є кнопки і редаговані поля. Невізуальні компоненти з'являються під час проектування як піктограми на формі. Вони ніколи не видні під час виконання, але мають певну функціональністю (наприклад, забезпечують доступ до даних, викликають стандартні діалоги Windows і ін.) (див рис. 2.2).
Рис. 2.2 - Використання видимих і невидимих компонентів
При визначенні властивостей компонента під час проектування потрібно вибрати компонент на формі, відкрити сторінку властивостей в інспектора об'єктів, вибрати обумовлена властивість і змінити його за допомогою редактора властивостей (це може бути п поле для введення тексту або числа, що випадає список, що розкривається список, діалогова панель і т.д.).
Файли, що утворять додаток форми та модулі зібрані в проект. Менеджер проектів показує списки файлів і модулів проекту та дозволяє здійснювати навігацію між ними. Можна викликати менеджер проектів, вибравши пункт меню View / Project Manager. За замовчуванням знову створений проект одержує ім'я Project1. cpp. (див рис. 2.3)
Рис.2.3 - Менеджер проектів
Проект або додаток звичайно мають кілька форм. Додавання форми до проекту створює наступні додаткові файли: файл форми з розширенням. DFM, що містить інформацію про ресурси вікон для конструювання форми, файл модуля з розширенням. CPP, що містить код на C++, заголовний файл з розширенням. H, що містить опис класу форми. При додаванні нової форми, файл проекту автоматично оновлюється.
Якщо при виконанні проекту виникає помилка часу виконання, C++ Builder робить паузу у виконанні програми та показує редактор коду з курсором, установленим на операторі, що є джерелом помилки. Перш ніж робити необхідну корекцію, слід перезапустити програму, вибираючи пункт меню Run з контекстного меню або з меню Run, закрити додаток і лише потім вносити зміни в проект. У цьому випадку зменшиться ймовірність втрати ресурсів Windows.
2.2 Керівництво програміста
Даний програмний продукт працює і виводить дані в графічному режимі. Та містить ієрархію класів. Класи мають відкриті та захищені методи доступу, конструктори та методи, які реалізують переміщення фігур і т.д.
На головній формі є такі компоненти:
Panel, PaintBox1, Label, BitBtn, MainMenu (див рис.2.4)
Рис. 2.4 - Головна форма
Дошку на Form1 - > PaintBox1 малює клас Dochka.
При розробці "Імітатора гри у шахи" було розроблено такі класи: Дошка, клітка, інтерфейс.
class Dochka
{
private:
int i,j;
public:
Dochka (); };
Кожна клітинка на дошці реалізується за допомогою окремих класів:
class Kletka_A_8
{
private:
int i,j;
public:
Kletka_A_8 ();
void Tura_Left_Black_A_8 ()
};
Хода фігур задаються по координатам клітинок, хода описані в потрібному класі потрібним методом.
Далі кожна клітинка малюється аналогічно класу Kletka_A_8 тільки з іншими координатами та кольором. Координати клітинки задаються:
Form1->PaintBox1->Canvas->Rectangle (кордината 1, кордината 2, кордината 3, кордината 4);
А колір:
Form1->PaintBox1->Canvas->Brush->Color=<потрібний колір>;
Параметри текстових підказок на Form1 описані в класі CreateInterfeysa.
class CreateInterfeysa
{
private:
int i,j;
public:
CreateInterfeysa ();
};
Подальше переміщення відбувається аналогічно тільки по інших координатах. Для того щоб визвати потрібний метод або приєднати його до кнопки, я використовую код:
void __fastcall TForm1:: BitBtn13Click (TObject *Sender)
{
Kletka_A_2 *a=new Kletka_A_2 ();
a->Peska_White_A_2 ();
Kletka_A_2: Kletka_A_2 (); // повертаємо параметри клітинки
}
Щоб переключитись між розкладками фігур на дошці, використовуємо методи: Persha_Gra, Druga_Gra () які описані в класі CreateInterfeysa.
class CreateInterfeysa
{
private:
int i,j;
public:
CreateInterfeysa ();
void Druga_Gra_Help ();
void Tretya_Gra_Help ();
};
Щоб намалювати дошку, я викликаю методи в FormCanResize
void __fastcall TForm1:: FormCanResize (TObject *Sender, int &NewWidth,
int &NewHeight, bool &Resize)
{
Dochka:: Dochka ();
Kletka_A_8: Kletka_A_8 ();
}
Аналогічно інші клітинки тільки з власними назвами.
2.3 Керівництво користувача
У керівництві користувача - знаходиться опис програмного продукту у якому описується його функціонал.
Дана програма була створена для імітування гри у шахи в якій відображаються можливі хода фігурами на шаховій дошці.
Мінімальні вимоги до системи:
операційна система Windows 7;
процесор Intel (R) Pentium (R) CPU 1800GNz;
ОЗУ 256 МБ;
жосткий диск 128 МБ;
відео адаптер 256 МБ;
ПЗ Відео плеєр.
Управління програмним продуктом:
Після запуску програми Project1. exe на екрані з'явиться вікно. Вікно програми містить зображення шахової дошки з фігурами, з права від дошки міститься панель на якій буду зображено підказки для гравця. (диф. рис 2.4)
Рис. 2.4 - Початкове вікно з стандартною розкладкою гри
Меню "Файл" містить дві функції "Стандартна розкладка" та "Вихід". За допомогою стандартної розкладки фігури вертають на свої початкові місця для нової гри. Вихід слугує завершенням роботи з програмою та виходить з програми. Функції меню Файл зображені на рис.2.5
Рис.2.5 - Функції меню Файл
Меню "Етапи гри" містить три функції: I гра, II гра, III гра (див. рис.2.6).
Рис.2.6 - Функції меню етапи гри
Після натискання на кнопку І відкриється початкове вікно з стандартною розкладкою шахів (див. рис.2.7).
Рис.2.7 - Вікно I гри
Натиснувши на кнопку II відкриється нове розташування шахів на дошці (див. рис.2.8).
Рис.2.8 - Вікно II гри
Натиснувши на кнопку III відкриється нове розташування шахів на дошці (див. рис.2.9).
Рис.2.9 - Вікно III гри
Натиснувши в меню на довідку або клавішу F9, відкриється документ з інформацією про програмний продукт (ПП) (див. рис.2.10).
Рис.2.10 - Довідка після натиснення в меню на довідку
Користувач при натисненні на вибрану фігуру може переглянути можливий хід тієї фігури. Цей принцип використовується аналогічно до всіх ходів. Наприклад, обравши фігуру коня F - 3 (див. рис.2.11), користувач одержав можливий хід цієї фігури.
Рис.2.12 - Можливий хід коня
Програма виділяє червоним кольором поле фігури, яку можна бити. Наприклад, на рис.2.13 виділено хід пешки, яку можна бити.
Рис.2.13 - Можливий хід пешки
Таким чином у даному розділі було розглянуто сутність роботи даного продукту.
Розділ 3. Охорона праці та техніка безпеки
3.1 Вимоги до виробничих приміщень
Приміщення для роботи з електронно-обчислювальній машині (ЕОМ) повинні мати природне та штучне освітлення відповідно до стандартів.
Виробничі приміщення для роботи з ЕОМ (операторські, диспетчерські) не повинні межувати з приміщеннями, в яких рівні шуму і вібрації перевищують допустимі значення (виробничі цехи, майстерні тощо).
Приміщення для роботи з ЕОМ мають бути обладнані системами опалення, кондиціонування повітря або припливно-витяжною вентиляцією відповідно до СНиП 2.04.05-91. Нормовані параметри мікроклімату, іонного складу повітря, вмісту шкідливих речовин мають відповідати вимогам СН 4088-86, СН 2152-80, ГОСТ 12.1.005-88, ГОСТ 12.1.007-76.
Віконні прорізи приміщень для роботи з ЕОМ мають бути обладнані регульованими пристроями (жалюзі, завіски, зовнішні козирки).
Виробничі приміщення можуть обладнуватись шафами для зберігання документів, магнітних дисків, полицями, стелажами, тумбами тощо з урахуванням вимог до площі приміщень.
У виробничих приміщеннях на робочих місцях з ЕОМ мають забезпечуватись оптимальні значення параметрів мікроклімату: температури, відносної вологості й рухливості повітря (ГОСТ 12.1.005-88, СН 4088-86).
Штучне освітлення в приміщеннях з робочими місцями, обладнаними ЕОМ, має здійснюватись системою загального рівномірного освітлення. У виробничих та адміністративно-громадських приміщеннях, у разі переважної роботи з документами, допускається застосування системи комбінованого освітлення (крім системи загального освітлення, додатково встановлюються світильники місцевого освітлення).
Як джерела світла в разі штучного освітлення мають застосовуватись переважно люмінесцентні лампи типу ЛБ. Допускається застосування ламп розжарювання у світильниках місцевого освітлення.
3.2 Гігієнічні вимоги до організації і обладнаних робочих місць
Робочі місця з ЕОМ слід так розташовувати відносно світових прорізів, щоб природне світло падало збоку переважно зліва.
При розміщенні робочих столів з ЕОМ слід дотримувати такі відстані: між бічними поверхнями ЕОМ 1,2 м, відстань від тильної поверхні одного дисплею до екрана іншого - 2,5 м.
Робочий стіл повинен мати простір для ніг заввишки не менше ніж 600 мм, завширшки не менше ніж 500 мм, завглибшки (на рівні колін) не менше ніж 450 мм, на рівні простягнутої ноги - ніж 650 мм.
Робочий стілець має бути підйомно-поворотним, регульованим за висотою, з кутом і нахилом сидіння та спинки і за відстанню від спинки до переднього краю сидіння поверхня сидіння має бути плоскою, передній край - заокругленим. Регулювання за кожним із параметрів має здійснюватися незалежно, легко і надійно фіксуватися. Поверхня сидіння і спинки стільця має бути напівм'якою з нековзним, повітронепроникним покриттям, що легко чиститься і не електризується.
Екран має розташовуватися на оптимальній відстані від очей користувача, що становить 600.700 мм, але не ближче ніж за 600 мм з урахуванням розміру літерно-цифрових знаків і символів. Розташування екрана має забезпечувати зручність зорового спостереження у вертикальній площині під кутом +30° до нормальної лінії погляду працюючого.
Розташування пристрою введення-виведення інформації має забезпечувати добру видимість екрана, зручність ручного керування в зоні досяжності моторного поля і за висотою - 900.1300 мм, за шириною 400.500 мм.
3.3 Правила техніки безпеки
1. До роботи на засобах обчислювальної техніки та ЕОМ допускаються особи, що вивчили інструкцію по експлуатації складових частин чи пристроїв що входять в склад ЕОМ.
2. Перевірити комплектність складових частин ЕОМ. При виявленні недоліків повідомити обслуговуючий персонал (лаборанта, завідувача лабораторією).
3. Всі засоби подачі напруги живлення від загальної електромережі повинні бути виключеними.
4. Перед початком проведення практичних та лабораторних робіт і включенням напруги живлення від загальної електромережі, а також включених складових частин ЕОМ всі особи які находяться в лабораторії (студенти) повинні знаходитись на своїх робочих місцях.
5. Включення напруги живлення на розетки загальної електромережі та включення пристроїв ЕОМ тільки з дозволу викладача або лаборанта.
6. В комп'ютерних класах та лабораторіях є фактори небезпечні для здоров'я та життя людей: можливість ураження електричним струмом високої напруги (220 В) при неправильному користуванні засобами обчислювальної техніки та складовими частинами ЕОМ, при відсутності або несправному заземленні; можливість отримання механічних травм при неправильному користуванні монтажними інструментами, а також при перенесенні і транспортуванні обладнання обслуговуючим персоналом.
7. Під час виконання лабораторних та практичних робіт на засобах обчислювальної техніки та ЕОМ забороняється:
- відключати або включати складові частини ЕОМ в розетках загальної електромережі на робочих місцях без дозволу викладача, лаборанта, завідувача лабораторією;
- переставляти складові частини ЕОМ та їх підключати;
- працювати на ЕОМ, якщо пошкоджений шнур чи розетка, працювати на ЕОМ зі знятою кришкою. Перевіряти та міняти запобіжники на складових частинах ЕОМ;
- використовувати складові частини ЕОМ якщо на них попала вода або пролита рідина, блокувати вентиляційні отвори на кришках складових частин ЕОМ.
Висновки
Під час практики при використанні технологій об'єктно-орієнтованого програмування було розроблено програмний продукт для імітації гри у шахи з ціллю ознайомлення користувача з ходами шахових фігур по дошці.
Проект було розроблена у середовищі С++Builder6 і за допомогою класу та графічних компонентів.
При створенні програмного продукту мною більш детально було засвоєно поняттями класу та об'єкту, базового і похідного класів, ієрархії класів, методикою програмування
В кінці практики я одержав програму для навчання гри у шахи.
Перелік посилань на джерела
1. Архангельский А.Я. C++Builder. Работа с документами Excel. - Санкт-Петербург, Бином-Пресс, 2009 г. - 480 с.
2. Архангельский А.Я. Программирование в C++ Builder (+ CD-ROM). - Санкт-Петербург, Бином-Пресс, 2010 г. - 1304 с.
3. В.А. Скляров. Язык C++ и объектно-ориентированное программирование: Справочное издание. - Минск: Вышэйшая школа, 1997.480с.
4. Вальпа Олег. Borland C++ Builder. Экспресс-курс (+CD) - Москва, БХВ-Петербург, 2006 г. - 224 с.
5. Еремин М.А. Определитель Еремина в линейной и нелинейной алгебре. Линейное и нелинейное программирование. Новый метод. - Санкт-Петербург, КомКнига, 2006 г. - 120 с.
6. Зайцева, О.С. Численные методы: Учебное пособие. Часть 1 [Текст]. - Тобольск: Изд-во ТГПИ им.Д.И. Менделеева, 2005. - 75 с.
7. Ирэ Пол. Объектно-ориентированное программирование с использованием C++: Пер. с англ. - Киев: НИИПФ ДиаСофт Лтд, 1995.480с.
8. Пантелеев А.В., Киреев В.И. Численные методы в примерах и задачах: Учеб. пособие [Текст]. - М.: Высш. шк., 2006. - 480 с.
9. Пахомов Борис Самоучитель C/С++ и С++ Builder 2007 (+ DVD-ROM). - Москва, БХВ-Петербург, 2008 г. - 672 с.
10. Пахомов Борис. C/C++ и Borland C++ Builder для начинающих. - Санкт-Петербург, БХВ-Петербург, 2005 г. - 630 с.
11. Федоренко Ю.П. Алгоритмы и программы на C++ Builder (+ CD-ROM). - Санкт-Петербург, ДМК Пресс, 2010 г. - 544 с.
12. Хорев П.Б. Технологии объектно-ориентированного программирования. Учебное пособие. - Санкт-Петербург, Академия, 2004 г. - 448 с.
Додатки
Додаток A
Структура проекту
Додаток Б
Лістинг програми "Імітатор гри в шахи"
#include <vcl. h>
#pragma hdrstop
#include "Unit1. h"
#include "Unit2. h"
// ---------------------------------------------------------------------------
#pragma package (smart_init)
#pragma resource "*. dfm"
TForm1 *Form1;
// ---------------------------------------------------------------------------
class Xoda_Figur
{
private:
int i,j;
public:
Xoda_Figur ();
void Korol ();
void Koroleva ();
void Ofizer ();
void Kin ();
void Tura ();
void Pechka ();
};
void Xoda_Figur:: Korol ()
{
Form1->Close ();
}
class CreateInterfeysa
{
private:
int i,j;
public:
CreateInterfeysa ();
void Druga_Gra_Help ();
void Tretya_Gra_Help ();
};
CreateInterfeysa:: CreateInterfeysa ()
{
Form1->Position=poMainFormCenter;
Form1->Label1->Font->Name="Times New Roman";
Form1->Label2->Font->Name="Times New Roman";
Form1->Label3->Font->Name="Times New Roman";
Form1->Label4->Font->Name="Times New Roman";
Form1->Label5->Font->Name="Times New Roman";
Form1->Label6->Font->Name="Times New Roman";
Form1->Label7->Font->Name="Times New Roman";
Form1->Label8->Font->Name="Times New Roman";
Form1->Label17->Font->Name="Times New Roman";
Form1->Label1->Font->Size=10;
Form1->Label2->Font->Size=10;
Form1->Label3->Font->Size=10;
Form1->Label4->Font->Size=10;
Form1->Label5->Font->Size=10;
Form1->Label6->Font->Size=10;
Form1->Label7->Font->Size=10;
Form1->Label8->Font->Size=10;
Form1->Label17->Font->Size=10;
}
void CreateInterfeysa:: Druga_Gra_Help ()
{
Form1->Label10->Visible=true;
Form1->Label11->Visible=true;
Form1->Label12->Visible=true;
Form1->Label13->Visible=true;
Form1->Label14->Visible=true;
Form1->Label15->Visible=true;
Form1->Label16->Visible=true;
Form1->Label18->Visible=true;
}
void CreateInterfeysa:: Tretya_Gra_Help ()
{
Form1->Label10->Visible=true;
Form1->Label11->Visible=true;
Form1->Label12->Visible=true;
Form1->Label19->Visible=true;
Form1->Label20->Visible=true;
Form1->Label21->Visible=true;
Form1->Label22->Visible=true;
}
// ------малюємо дошку-------------------------------------------------------
class Dochka
{
private:
int i,j;
public:
Dochka ();
};
Dochka:: Dochka ()
{
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=0x0026738C;
Form1->PaintBox1->Canvas->Rectangle (2,2,558,495);
}
// малюємо комірки і в методах описую параметри фігур------------------------
class Kletka_A_8
{
private:
int i,j;
public:
Kletka_A_8 ();
void Tura_Left_Black_A_8 ();
};
Kletka_A_8:: Kletka_A_8 ()
{
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=2;
Form1->PaintBox1->Canvas->Pen->Color=clOlive;
Form1->PaintBox1->Canvas->Rectangle (6,6,67,69);
}
void Kletka_A_8:: Tura_Left_Black_A_8 ()
{
// По Вертекалі----------------------------
// A_8
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6,6,67,69);
// A_7
Form1->PaintBox1->Canvas->Pen->Mode = pmNotXor;
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6,128,67,71);
// A_6
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6, 193,67,130);
// A_5
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6,252,67, 195);
// A_4
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6,254,67,316);
// A_3
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6,318,67,375);
// A_2
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6,377,67,434);
// A_1
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6,436,67,492);
// По Горизонталі--------------------------
// B_8
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (69,6,138,69);
// C_8
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (140,6, 204,69);
// D_8
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (206,6,272,69);
// E_8
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (274,6,344,69);
// F_8
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (346,6,415,69);
// G_8
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (417,6,483,69);
// H_8
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (485,6,555,69);
}
// ---------------------------------------------------------------------------
class Kletka_A_7
{
private:
int i,j;
public:
Kletka_A_7 ();
void Peska_Black_A_7 ();
};
Kletka_A_7:: Kletka_A_7 ()
{
Form1->PaintBox1->Canvas->Brush->Color=clBlack;
Form1->PaintBox1->Canvas->Pen->Width=2;
Form1->PaintBox1->Canvas->Pen->Color=clOlive;
Form1->PaintBox1->Canvas->Rectangle (6,128,67,71);
}
void Kletka_A_7:: Peska_Black_A_7 ()
{
// A_7
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6,128,67,71);
// A_6
Form1->PaintBox1->Canvas->Pen->Mode = pmNotXor;
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6, 193,67,130);
// A_5
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6,252,67, 195);
}
// ---------------------------------------------------------------------------
class Kletka_A_6
{
private:
int i,j;
public:
Kletka_A_6 ();
void Druga_Gra ();
void Tretya_Gra ();
};
Kletka_A_6:: Kletka_A_6 ()
{
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=2;
Form1->PaintBox1->Canvas->Pen->Color=clOlive;
Form1->PaintBox1->Canvas->Rectangle (6, 193,67,130);
}
void Kletka_A_6:: Druga_Gra ()
{
// A_6
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6, 193,67,130);
// B_7
Form1->PaintBox1->Canvas->Pen->Mode = pmNotXor;
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (69,128,138,71);
// C_8
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (140,6, 204,69);
// B_5
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (138,252,69, 195);
}
void Kletka_A_6:: Tretya_Gra ()
{
// A_6
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (6, 193,67,130);
// B_7
Form1->PaintBox1->Canvas->Pen->Mode = pmNotXor;
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (69,128,138,71);
// C_8
Form1->PaintBox1->Canvas->Brush->Color=clWhite;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (140,6, 204,69);
// B_5
Form1->PaintBox1->Canvas->Brush->Color=clRed;
Form1->PaintBox1->Canvas->Pen->Width=5;
Form1->PaintBox1->Canvas->Pen->Color=clRed;
Form1->PaintBox1->Canvas->Rectangle (138,252,69, 195);
}
Размещено на Allbest.ru
Подобные документы
Проектування і реалізація навчального програмного продукту "Побудова геометричних фігур". Використання C++ Builder 6 у якості програмного середовища для реалізації даної навчальної програми. Інструкція з використання розробленого програмного забезпечення.
курсовая работа [2,2 M], добавлен 05.05.2014Характеристика об’єкта автоматизації, вимоги до системи, склад та зміст системи. Розробка функціональної схеми програмного продукту. Тестування підпрограми програмного продукту. Розробка бази даних та налаштування ECO компонент в Borland Developer Studio.
практическая работа [1,8 M], добавлен 05.06.2014Основні завдання синоптичної метеорології. Призначення та область застосування програмного продукту "Статистика метеоспостережень", функціональні вимоги до нього. Інформаційне забезпечення, структура, опис інтерфейсу. Тестування програмного продукту.
курсовая работа [3,6 M], добавлен 30.04.2016Розробка структури інструментального пакету для лабораторних робіт з інформатики на мові JavaScript: аналіз предметної області, написання алгоритму та вибір програмного забезпечення, розрахунок економічних показників готового програмного продукту.
дипломная работа [3,3 M], добавлен 16.09.2011Визначення та застосування фракталів. Огляд предметної області, вибір засобів розробки програмного забезпеченя. Побудова діаграми варіантів використання, послідовності дій, класів та компонентів, математичної моделі. Тестування програмного продукту.
дипломная работа [1,9 M], добавлен 24.05.2015Формування електронного реєстру та презентація обліку зайнятості населення. Основні завдання обліку зайнятості (біржі праці). Обґрунтування доцільності створення програмного модуля. Вимоги до програмного продукту. Тестування програмного продукту.
курсовая работа [399,7 K], добавлен 30.04.2016Особливості програмної реалізації алгоритму пошуку файлів з заданими атрибутами. Опис програмного комплексу на мові Turbo С. Розробка інструкції користувача. Тестування програмного продукту на операційних системах MS DOS 5.0/6.0/6.2 і Windows 95/98/Me/Xp.
курсовая работа [27,0 K], добавлен 21.07.2011Функції обліку зайнятості аудиторії. Створення програмного модуля, який виконуватиме формування електронного реєстру та презентацію вільних та зайнятих аудиторій. Призначення та область застосування програмного продукту. Опис інтерфейсу, тестування.
курсовая работа [460,5 K], добавлен 21.05.2016Дослідження вбудованого акселерометра, розробка алгоритму автоматичного підрахунку фізичнх вправ і його практична реалізація у вигляді програмного продукту для смартфонів iPhone. Налаштування сервера. Поширення програмного продукту, його тестування.
дипломная работа [2,6 M], добавлен 14.12.2012Призначення програмного продукту. Основні функціональні можливості. Перелік розв’язуваних за допомогою програмного продукту задач. Вимоги до апаратного та програмного забезпечення. Основні прийоми.
реферат [37,2 K], добавлен 26.10.2004