2.2 Словарь данных

 

Лабиринт – множество комнат, соединённых между собой дверьми.

Комната – символически изображенный квадрат, заданный в лабиринте.

Дверь –устройство, соединяющее комнаты.

Данные редактирования – изменение лабиринта, т.е. ввод комнат и дверей, а также их удаление.

Результат – Кратчайший путь в лабиринте.


2.3 Диаграмма состояний


Рисунок 2.3 – Диаграмма состояний

Состояние 0 – загрузка программы – начальное состояние, в котором находится программа после загрузки. В этом состоянии пользователь может ознакомиться с управлением или выйти из программы.

Состояние 1 – создание лабиринта – состояние, в котором формируется лабиринт.

Состояние 2 – ввод комнаты – в этом состоянии пользователь может ввести комнату.

Состояние 3 – ввод двери – в этом состоянии пользователь может ввести дверь.

Состояние 4 – удаление комнаты – в этом состоянии пользователь (при необходимости) может удалить существующую комнату.

Состояние 5 – удаление двери – в этом состоянии пользователь (при необходимости) может удалить существующую дверь.

Состояние 6 – сохранение лабиринта – пользователю предоставляется возможность сохранить лабиринт.

Состояние 7 – загрузка лабиринта – пользователю предоставляется возможность загрузить, ранее сохраненный, лабиринт.

2.4 Построение модели пользовательского интерфейса

Для удобства ввода, редактирования и удаления элементов лабиринта, необходимо создать удобный, дружественный интерфейс.

При запуске программы на экране появляется сетка, в которой будет вводиться лабиринт. В каждой клеточке может находиться комната или дверь. По сетке передвигается курсор, который управляется с помощью клавиш <> - вверх, <> - вниз, <> - вправо, <> - влево он определяет положение комнаты или двери. На экране постоянно присутствует меню подсказки, которое помогает пользователю ориентироваться. В нём указывается клавиши, с помощью которых пользователь может задать лабиринт. Например, при помощи клавиши <к> происходит ввод комнаты, при этом комната отображается в виде точки зелёного цвета, при помощи клавиши <д> происходит ввод двери, которая не рисуется а просто соединяет комнаты и представляет собой две перекрещивающиеся линии, т.е. можно соединять сразу несколько дверей в комнатах и рисовать лабиринт в трёх или в четырёх направлениях. При помощи клавиши <я> можно редактировать лабиринт т. е. удалять вершины или рёбра.

После ввода лабиринта в левом верхнем углу экрана выдаётся приглашение: “Введите вход в лабиринт ” после чего ожидается выбор одной из комнат в лабиринте, с помощью клавиш управления курсром и клавиши <Enter>, при этом выдаётся пиглашение: “Введите выход из лабиринта”. После выбора выхода программа выдаёт сообщение: “Кратчайший путь найден ” - в том случае, если он найден или “пути нет ” - если пути не существует. Если кратчайший путь найден, то он будет показан на графе в виде подсветки красным цветом. Далее предлагается выйти из программы путём нажатия клавиши <Esc> или начать ввод нового лабиринта нажав при этом любую клавишу. При этом существует клавиша <c> и <з> соответственно для сохранения лабиринта или загрузки уже существующего.


3 Технический проект


3.1 Диаграмма потоков данных

 

Программа имеет 4 основных процесса, отражающие основные функции программы:


Рисунок 3.1 – Диаграмма 1-го уровня




Рисунок 3.2 – Детализация процесса “Ввод лабиринта и его редактирование”

3.2 Словарь данных

Лабиринт – множество комнат, соединённых между собой дверьми.

Комната – символически изображенный квадрат, заданный в лабиринте.

Дверь –устройство, соединяющее комнаты.

Команда – в процессе диалоговой работы пользователя с программой, нажатие пользователем функциональной клавиши, за которой закреплено определенное действие. Существует 5 видов: ввод комнаты, ввод двери, удаление (комнаты или двери), сохранение и выход.

Команда ввод комнаты – нажатие пользователем клавиши <к>.

Команда ввод двери - нажатие пользователем клавиши <д>.

Команда удаление - нажатие пользователем клавиши <я>.

Команда сохранение - нажатие пользователем клавиши <с>.

Команда выход - нажатие пользователем клавиши <esc>.

Координаты – численное значение, определяющее положение объекта в лабиринте.

Карта поля – двумерный массив, который содержит координаты всех комнат и дверей.

Карта прохождения - двумерный массив, который содержит координаты комнат и дверей, через которые проходит кратчайший путь.

 


Информация о работе «Поиск кратчайшего пути в лабиринте»
Раздел: Информатика, программирование
Количество знаков с пробелами: 35148
Количество таблиц: 5
Количество изображений: 6

Похожие работы

Скачать
4340
0
0

... следующим образом: «найти кратчайший путь передвижения слона по заданному клеточному полю, соединяющих два заданных поля доски» Целью представленной работы является разработка приложения “Поиск кратчайшего пути”, которое создает шахматную доску, находит кратчайший путь передвижения слона и отображает его. Перед началом вычисления пользователь должен указывать в программе следующую информацию: ...

Скачать
72097
2
0

... набором типовых подсхем - Автоморфизм графов конструктивное перечисление структурных изомеров для производных органических соединений синтез тестов цифровых устройств 2.2. Нахождение кратчайших путей в графе   Начальные понятия Будем рассматривать ориентированные графы G = <V, E>, дугам которых приписаны веса. Это означает, что каждой дуге <u, ...

Скачать
44292
8
0

... Задачи, имеющие решение применимое к целому классу подобных задач: это задачи, в формулировке которых не содержится особых деталей, чтобы их решение было применимо к целому классу подобных задач (Пример: задача о метрополитене и т.д.). Задачи. Комнаты музея. Составьте алгоритм-программу определения числа комнат в музее и площади каждой комнаты в клетках. План музея показан ниже на рисунке. ...

Скачать
12427
1
0

... конечной клетки, клетки принадлежащие разным линиям (например, «c1» и «b6»). Введем несколько обязательных клеток, так, чтобы они влияли на построение оптимального маршрута. Выбор маршрута передвижения в лабиринте с посещением обязательных клеток Схему лабиринта можно найти в приложении пояснительной записки Введите название начальной клетки = d1 Введите название конечной клетки = b6 Сколько ...

0 комментариев


Наверх