- •Содержание
- •1 Математическая постановка задача
- •2 Метод решения задачи
- •3 Укрупненная структура разработанной программы и описание
- •4 Схемы алгоритмов решения задачи и их описание
- •5 Результаты тестирования разработанного программного средства
- •6 Методика работы пользователя с разработанным программным средством
- •Приложение а Исходный текст программного средства
4 Схемы алгоритмов решения задачи и их описание
При реализации программного средства было построено несколько алгоритмов для работы искусственного интеллекта.
Ниже в виде схем Насси-Шнейдермана представлены алгоритмы основных функций, используемых в программе, а именно: Функция Draw (схема 1), Функция ShootPlayer (x, y, n) (схема 3), Функция Shoot (схема 5).
Так же основне алгоритмы представлены ниже в виде основних схем Дамке, а именно: Функция Draw (схема 2), Функция ShootPlayer (x, y, n) (схема 4), Функция Shoot (схема 5).
Изначально пользователю необходимо выбрать сложность, ввести имя, а так же расставить корабли, или же использовать автоматическую функцию. После чего происходит инициализация введенных значений.
Затем происходит формирование заполнения поля компьютера.
Определить значение key, x, y | |||
Key = промах
Да Нет | |||
Нарисовать промах в ячейке х, у
|
| ||
Кеу = попадание
Да Нет | |||
Нарисовать в ячейке х, у подбитую палубу
|
| ||
Кеу = нарисовать корабль
Да Нет | |||
і от 1 до количество палуб
|
| ||
|
По вертикали
Да Нет | ||
Рисовать палубу в ячейке х, у+і |
Рисовать палубу в ячейке х+і, у
|
Схема 1 – Алгоритм функции Draw, отвечающей за рисование кораблей по методу Насси-Шнейдермана
Следующая диаграмма отображает алгоритм функции Draw, отвечающей за рисование кораблей с помощью диаграммы Дамке (схема 2).
Схема 2 – диаграмма Дамке для алгоритма функции Draw, отвечающей за рисование кораблей
Следующая диаграмма отображает алгоритм функции ShootPlayer, отвечающей за рисование кораблей с помощью диаграммы Насси-Шнейдермана (схема 3).
Проверить куда пришлось попадание | ||
Мимо
Нет Да | ||
Нарисовать след от выстрела |
В цель
Да Нет | |
Запомнить, что туда уже стреляли |
Нарисовать подбитую палубу
|
Сообщить о попадании в расстрелянную ранее ячейку |
|
Запомнить, что туда уже стркляли |
|
Схема 3 – диаграмма Насси-Шнейдермана для алгоритма функции ShootPlayer, отвечающей выстрелы игрока в корабли
Ниже в виде схем Дамке представлен алгоритм функции ShootPlayer для ведения огня игроком(схема 4).
Схема 4 - алгоритм функции ShootPlayer по методу Дамке
Следующая диаграмма отображает алгоритм функции Shoot, отвечающей за попадания в корабли компьютера с помощью диаграммы Насси-Шнейдермана (схема 5).
Запомнить результата выстрела в ShootPlayer | |||||
в ShootPlayer попадание
Да Нет | |||||
Флот CPU уничтожен
Да Нет |
бесконечно | ||||
|
Генерация x, y, для CPU | ||||
Конец раунда
|
Выход
|
Запомнить результат выстрела компьютера в ShootCPU | |||
Выход |
в ShootCPU попадание Да Нет | ||||
Флот игрока уничтожен
Да Нет |
Прервать цикл | ||||
Конец раунда |
|
Выход | |||
Выход |
|
|
Схема 5 – диаграмма Насси-Шнейдермана для алгоритма функции Shoot
Ниже алгоритм функции Shoot, отвечающей за попадания в корабли компьютера по методу Дамке представлен на схеме 6.
Схема 6 - алгоритм функции Shoot, отвечающей за попадания в корабли компьютера по методу Дамке