- •Содержание
- •1 Математическая постановка задача
- •2 Метод решения задачи
- •3 Укрупненная структура разработанной программы и описание
- •4 Схемы алгоритмов решения задачи и их описание
- •5 Результаты тестирования разработанного программного средства
- •6 Методика работы пользователя с разработанным программным средством
- •Приложение а Исходный текст программного средства
2 Метод решения задачи
Для решения поставленной задачи программного средства необходимо осуществить алгоритм искусственного интеллекта, который будет выполнять задачу второго игрока .
Для этого необходимо разбить исходный код на несколько частей. А так же разработать стратегию игры искусственного интеллекта. Задача заключается в разработке алгоритма, по которому компьютер сможет играть в "Морской бой" с максимальным качеством и при этом не подглядывая расположение флота игрока. Дополнительное и очевидное условие: при каждой новой игре вне зависимости от размещения сил противника компьютер должен играть по-разному, т.е. его ходы должны быть не предсказуемы. Если реализовать поиск цели компьютером в виде отдельной процедуры, то надо как-то научить его запоминать исходы прошлых выстрелов, чтобы адекватно произвести следующий. Из этого факта вытекает, что самое простое и рациональное решение данной проблемы можно оформить в виде конечного автомата, наиболее точно описывающего последовательность действий. Можно выделить три состояния:
1. прострел игрового поля по случайным координатам до попадания по кораблю, после чего переход во второе состояние;
2. обстрел вокруг подбитой ячейки поля для определения направления корабля (вертикальное или горизонтальное), после очередного попадания - переход в третье состояние;
3. расстрел корабля в полученном направлении до полного его уничтожения, после чего переход в первое состояние.
Итак, вся игра зациклена на трех основных действиях: прострел, обстрел и расстрел. Все эти действия должны продолжаться до тех пор, пока у одной из сторон не будут уничтожены все корабли. Компьютеру потребуется еще одно поле, на котором он будет вести игру.
При реализации программного средства необходимо произвести анализ и сравнение методов шифрования и проверки подлинности пользователей по разным категориям.
Для корректной работы пользователя с программным средством необходимо разработать интуитивно понятный интерфейс, осуществить проверку данных, вводимых пользователем при работе с программным средством.
Для эффективной работы с программным средством необходимо предусмотреть систему меню, панель инструментов, систему «Справка».
3 Укрупненная структура разработанной программы и описание
назначения ее компонент
Разработанное программное средство включает два.
Unit 1 является главным модулем. Он объединяет все модули и представляет собой разработку внешней структуры программного средства, то есть её интерфейс – форма seabattle, а также определяет ход выполнения функций других модулей, в зависимости от выбранных пользователем действий.
В данном модуле осуществлен алгоритм отвечающий за искусственный интеллект , реализована система «Справка» и осуществлен доступ к описанию реализованных алгоритмов.
Так Unit1 содержит реализацию алгоритма ходов компьютера. Данный модуль содержит следующие процедуры и функции:
procedure IntitMass – данная процедура позволяет создать два массива для реализации полей для морского боя;
function check1 – данная функция реализует алгоритм стрельбы компьютера по случайным координатам;
function check2 – данная функция обеспечивает обстрел вокруг подбитой ячейки поля для определения направления корабля (вертикальное или горизонтальное);
function check3 – реализует расстрел корабля в полученном направлении до полного его уничтожения, после чего переход в первое состояние;
function Kri – осуществляет простановку координат после уничтожения корабля противника;
function TfmBattle – осуществляет прорисовку поля для сражения компьютера с игроком.
procedure FindDead – данная процедура осуществляет отображение уничтоженных корабле противника ;
function Lost – эта функция осуществляет использование другой стратегии искусственного интелекта ;
procedure Enab - данная процедура инициализирует переменные и обнуляет поля игры;
function Froeer – осуществляет простановку координат после уничтожения корабля противника;
function Fire1 – данная функция реализует алгоритм стрельбы компьютера по случайным координатам;;
function Kri – осуществляет простановку координат после уничтожения корабля противника.
Unit2 содержит реализацию системы шифрования Цезаря с ключевым словом. Данный модуль содержит следующие процедуры и функции:
function Name – осуществляет алгоритм ввода имени или ник-нейма пользователя ;
function Bot – осуществляет выбор стратегии используемые компьютером.