Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
zapiska_programm.docx
Скачиваний:
9
Добавлен:
20.09.2019
Размер:
4.1 Mб
Скачать
  1. Выбор графического и пользовательского интерфейса

Графический и пользовательский интерфейс представляет собой важную часть любой программы. От его оптимизации зависит скорость и удобство работы с программой. Рассмотрев несколько вариантов пользовательского интерфейса представленных на рис. 5, 6, был выбран наиболее оптимальный для простого пользователя (рис. 6).

Рис. 5. Неоптимальный интерфейс программы

Интерфейс, представленный на рис. 5 имеет неудобную компоновку кнопок, а также резкую цветовую гамму. Все это будет негативно сказываться на удобстве работы с программой.

Рис. 6. Оптимальный интерфейс программы

Интерфейс, представленный на рис. 6 имеет более спокойную цветовую гамму, более удобную компоновку кнопок и приятный фон, который позволяет длительное время, без утомления, работать с программой.

  1. Технологический раздел

  1. Определение структуры и состава программной системы

Данная программа состоит из:

  • mainprogram – главный модуль программы, отвечает за процесс игры;

  • about – модуль окна «О программе».

В таблице, расположенной ниже описаны те компоненты, которые использовались при создании программы.

Таблица 1

Используемые компоненты

Label

Метка

Размещает в форме объекты, предназначенные для создания текстовой информации, надписей и примечаний.

Edit

Текстовое поле

Размещает в форме текстовое поле, предназначенное для ввода текстовой информации, чисел и дат.

Button

Кнопка управления

Размещает в форме кнопки управления для инициации действий, выполнения команд, запуска программ.

Panel

Панель

Используется в декоративных целях.

Image

Изображение

Отображает графическое изображение на форме

В данной программе используются следующие процедуры.

Процедура FormCreate

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

Процедура nash

Выполняется в том случае, если выбрана ручная расстановка кораблей. Позволяет игроку расставить корабли на поле боя с помощью мыши.

Процедура shoot

Выполняется во время обмена выстрелами между игроком и компьютерным интеллектом.

Процедура Button5Click

Выполняется в том случае, если выбрана автоматическая расстановка кораблей игрока.

  1. Разработка алгоритмов отдельных подзадач

Разработаем алгоритмы основных процедур используемых в данной программе.

Процедура FormCreate

Игра, начинается сразу после запуска, так же при запуске начинается случайная расстановка кораблей компьютера

Каждое из полей (игрока и компьютера) представляет собой матрицу 10 на 10 в самом начале заполненную нолями. К тому же поля, как игрока, так и компьютера представляют собой картинку, которая изменяется при том или ином действии.

Расстановка кораблей противника происходит от четырехклеточного к одноклеточному. К тому же расстановка кораблей происходит в цикле.

Координаты четырехпалубного корабль выбираются случайно (переменная m и переменная n) лишь с условием того чтобы он не выходил за границы поля при этом выбирается случайное горизонтальное или вертикальное положение (переменная z). При этом корабль помечается цифрами «2» в матрице.

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

Однопалубным кораблям незачем проверка выхода за границы поля, поэтому проверка происходит только на пересечение и соприкосновение.

Представим основной алгоритм работы процедуры в виде блок-схемы (рис. 7):

Рис. 7. Представление алгоритма процедуры FormCreate

Процедура nash

Процедура ручной расстановки кораблей.

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

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

При этом ячейке матрицы поля игрока присваивается значение «2». После каждого нажатия происходит прорисовка поля игрока, для этого каждая ячейка со значением «2» закрашивается голубым

Представим основной алгоритм работы процедуры в виде блок-схемы (рис. 8):

Рис. 8. Представление алгоритма процедуры nash

Процедура shoot

После того как все корабли расставлены начинается обмен выстрелами.

Выстрел производится при нажатии на одну из клеток поля компьютера. Если ячейка имеет значение «0» (пустая клетка) то ячейке присваивается значение «3», если ячейка имеет значение «2» то ячейке присваивается значение «4».

Затем происходит прорисовка поля противника. Клетка, которой соответствует ячейка со значением «3» означает промах, в ней рисуется круг, клетка, которой соответствует ячейка со значением «4» проверяется подбит или потоплен корабль, если потоплен то рисуется красный квадрат, если подбит то рисуется голубой квадрат перечеркнутый красным крестом.

После происходит проверка выиграл ли игрок или нет, для этого матрица противника сканируется и если не находится ни одной ячейки со значением «2» то выводится сообщение о победе.

Если не находится то проверяется, куда попал игрок, если игрок попал в ячейку со значением «2» то ему предоставляется ещё один выстрел, а ячейке присваивается значение «4», если игрок попал в ячейку со значением «0» то ячейке присваивается значение «3» и затем наступает очередь хода компьютера.

Компьютерный интеллект выбирает произвольную клетку из поля игрока и если он попал в ячейку со значением «2» то ему предоставляется ещё один выстрел, а ячейке присваивается значение «4», если попал в ячейку со значением «0» то ячейке присваивается значение «3».

Затем происходит прорисовка поля компьютера. В клетке, которой соответствует ячейка со значением «3» рисуется круг, в клетке, которой соответствует ячейка со значением «4» проверяется, подбит или потоплен корабль, если потоплен, то рисуется красный квадрат, если подбит, то рисуется голубой квадрат перечеркнутый красным крестом.

Компьютерный интеллект стреляет до тех пор, пока не попадет в клетку со значением «0».

После происходит проверка проиграл ли игрок или нет, для этого матрица игрока сканируется и если не находится ни одной ячейки со значением «2» то выводится сообщение о поражении.

Представим основной алгоритм работы процедуры в виде блок-схемы (рис. 9):

Рис. 9. Представление алгоритма процедуры shoot

Процедура Button5Click

Процедура предназначена для автоматической расстановки кораблей игрока. Выполняется лишь в случае выбора автоматической расстановки кораблей. Полностью аналогична автоматической расстановке кораблей компьютера. Поэтому подробное рассмотрение данной процедуры можно опустить.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]