justify">. 4 Діаграма об'єктів предметної області
Процес подання предметної області задачі у вигляді сукупності об'єктів, що обмінюються повідомленнями, називається об'єктної декомпозицией [8].
При об'єктної декомпозиції між об'єктами встановлюється відносини:
Використання - перший об'єкт (активний) передає повідомлення іншому (пасивному), між ними можуть бути об'єкти посередники.
Включення - якщо об'єкт є результатів декомпозиції більш складного об'єкта.
Об'єктна декомпозиція, так само як і процедурна, може застосовуватися багаторазово, або бути багаторівневою. Це означає, що кожен об'єкт може розглядатися як система, яка складається з елементів, що взаємодіють один з одним через передачу повідомлень. При багаторівневої декомпозиції на кожному рівні ми отримуємо об'єкти з більш простим поведінкою, що дозволяє розробляти системи підвищеної складності по частинах.
Об'єкт - елемент системи, який об'єднує в собі в собі дані і операції над ними, що володіє властивостями спадкування, інкапсуляції і поліморфізму.
Діаграма об'єктів представляє статичну складову взаємодіючих між собою об'єктів, вона повинна включити в себе тільки ті об'єкти предметної області, які потім перетворюються в діаграму класів. Зв'язки між об'єктами показують відносини між ними, при необхідності в діаграмі можна привести і атрибути (властивості) об'єктів [2]. На малюнку 13 наведена діаграма об'єктів для даної системи.
Як видно з діаграми, лабіринт являє собою сукупність наступних об'єктів: сітки, на якій будуть розташовуватися стіни і проходи, які поділяються на звичайні проходи між стінами, вхід і вихід з лабіринту; персонажа (курсор, рухомий об'єкт і т.д.), який рухається по проходу.
. 5 Постановка завдання
Перед авторами поставлено завдання розробити автоматизовану систему генерування лабіринту і пошуку шляху в ньому.
Малюнок 13 - Діаграма об'єктів предметної області
Для досягнення поставленої мети необхідно вирішити наступні завдання:
Налаштування параметрів лабіринту. Завдання параметрів лабіринту проводиться вручну: користувач повинен задати розміри лабіринту по ширині і висо?? е (від 7 до 21 клітини), розмір лабіринту повинен бути непарний; повинен вибрати тему лабіринту (одну з чотирьох); повинен визначити місце розташування входу і виходу з лабіринту, які не повинні збігатися і повинні розташовуватися по периметру лабіринту. При цьому система повинна провести перевірку правильності цієї структури і, у разі невідповідності, видати попереджувальне повідомлення і забезпечити повторне введення параметрів.
Автоматична генерація лабіринту. В системі буде використовуватися два алгоритму генерації лабіринту: проріджування і «основного шляху».
Робота з файлами. Користувач повинен мати можливість зберегти лабіринт у файл і завантажити його з файлу.
Пошук шляху. Користувач повинен вибрати, за допомогою якого алгоритму буде знайдено шлях (хвильовий або «правої руки»).
Візуалізація процесів роботи з лабіринтом. Користувач повинен вибрати вид візуалізації: статична (із затримкою за часом) або динамічна (із залишенням слідів).
У системі також повинна бути забезпечена можливість отримання довідкової інформації як про саму систему, так і наданих нею можливостях.
Таким чином, система повинна виконувати наступні функції:
Налаштування параметрів лабіринту:
завдання розмірів;
вибір теми;
розставляння входу/виходу;
Автоматична побудова (генерація) лабіринту:
алгоритм проріджування;
алгоритм «основного шляху»;
Пошук шляху:
алгоритм «правої руки»;
хвильової алгоритм;
Збереження лабіринту в файл;
Завантаження лабіринту з файлу;
Візуалізація процесів роботи з лабіринтом:
динамічна;
статична;
Видача довідкової інформації про систему.
. Проектування системи
Система (грец. «складене з частин», «з'єднання» від «з'єдную») безліч елементів, що знаходяться у відносинах і зв'язках один з одним, яке утворює певну цілісність, єдність [2].
. 1 Розробка структурної схеми
Як випли...