ши при цьому будь-яку клавішу. При цьому існує клавіша і <З> відповідно для збереження лабіринту або завантаження вже існуючого. В
3 Технічний проект
3.1 Діаграма потоків даних
Програма має 4 основних процесу, що відображають основні функції програми:
В В
Малюнок 3.1 - Діаграма 1-го рівня
В
В В
Рисунок 3.2 - Деталізація процесу "Введення лабіринту і його редагування"
3.2 Словник даних
Лабіринт - безліч кімнат, з'єднаних між собою дверима. p> Кімната - символічно зображений квадрат, заданий в лабіринті.
Двері-пристрій, з'єднує кімнати. p> Команда - в процесі діалогової роботи користувача з програмою, натискання користувачем функціональної клавіші, за якою закріплено певну дію. Існує 5 видів: введення кімнати, введення двері, видалення (кімнати або двері), зберігання та вихід.
Команда введення кімнати - Натискання користувачем клавіші <до>. p> Команда введення двері - натискання користувачем клавіші <д>.
Команда видалення - натискання користувачем клавіші <я>.
Команда збереження - натискання користувачем клавіші <з>.
Команда вихід - натискання користувачем клавіші .
Координати - чисельне значення, що визначає положення об'єкту в лабіринті.
Карта поля - двовимірний масив, який містить координати всіх кімнат і дверей.
Карта проходження - двовимірний масив, який містить координати кімнат і дверей, через які проходить найкоротший шлях.
3.3 Специфікація процесів
Процес 1 Введення лабіринту та його редагування.
Даний процес служить для формування лабіринту і його редагування
Вхід: координати кімнат і дверей
Вихід: лабіринт
Дії: Формування лабіринту шляхом заповнення його структури координатами кімнат і дверей.
Процес 1.1 Введення кімнати
Перш ніж передати процесу 1 координати кімнат чи дверей, необхідно перетворити команди користувача щодо розстановки кімнат і дверей, у відповідні координати для кожної кімнати та двері. Процеси 1.1-1.3 зчитують код клавіші, утримуючи користувачем, і відповідно з кодом клавіші і місцем розташування курсору формують код і координати.
Вхід: введення кімнати
Вихід: код і координати кімнати
Процес 1.2 Введення двері
Вхід: введення двері
вихід: код і координати двері
Процес 1.3 Видалення кімнати або двері
Процес видалення записує в структуру лабіринту код 0, за заданими координатами, що позначає порожнє місце, тобто кімната або двері була видалена з лабіринту.
Вхід: видалення
Вихід: код і координати
Процес 2 Пошук шляху
Процес пошук шляху отримує структуру лабіринту, і відповідно до неї шукає можливі шляхи проходження лабіринту, і шляхом порівняння вибирає найкоротший.
Вхід: структура лабіринту
Вихід: найкоротший шлях у лабіринті.
Процес 4 Відображення лабіринту
При введенні кімнат або дверей необхідно щоб користувач бачив відображення введеної інформації на екрані монітора. Даний процес повинен візуалізувати лабіринт і знайдений шлях на екрані.
Вхід: координати кімнат і дверей
Вихід: зображення лабіринту
Процес 3 Збереження введених даних у файлі
Для того щоб координати кімнат чи дверей не вводити заново при кожному запуску програми, необхідно зберігати їх у файл.
Вхід: структура лабіринту
Вихід: файл з збереженою структурою лабіринту
Процес 3 Зчитування даних з файлу
Для того щоб координати кімнат чи дверей не вводити заново при кожному запуску програми, необхідно зберігати їх у файл.
Вхід: файл з збереженою структурою лабіринту
Вихід: структура лабіринту
3.4 Визначення форми представлення вхідних і вихідних даних
Вхідні дані:
Це послідовність символів, що вводиться користувачем з клавіатури.
Вихідні дані:
Відображення лабіринту та шляхи його проходження на екрані монітора, а також файл із збереженим лабіринтом.
Команди:
завантаження лабіринту
збереження лабіринту
створення кімнати
створення двері
видалення кімнати або двері
вихід
3.5 Розробка структури програми
Виходячи з вимог до програми, раціональніше всього розділити її...