Схема морской бой

Рубрика: Курсовая работа на тему: Разработка приложения для Windows в формате компьютерной игры Морской бой. Оглавление Введение 4 Глава 1. Разработка эскизного и технического проектов программы 5 1. Назначение и область применения 5 1. Технические характеристики 5 1. Постановка задачи 5 1. Описание алгоритма 7 1. Организация входных и выходных данных 9 1. Выбор состава технических и программных средств 10 Глава 2. Разработка рабочего проекта 11 2. Разработка программы 11 2. Написание программы 16 2. Спецификация программы 18 2. Текст программы 20 2. Тестирование программы 26 Глава 3. Условия выполнения программы 27 3. Выполнение программы 27 3. Сообщение оператору 27 Заключение 29 Список литературы 30 Приложение 1 Приложение 2 Введение Задание на курсовую работу по дисциплине "Алгоритмические языки и программирование" Направление: "Информатика" Тема: Разработка приложения для Windows в формате компьютерной игры Морской бой. Условие задачи: Разработать программу, моделирующую игру "Морской бой". На поле 10 на 10 позиций стоят невидимые вражеские корабли: 4 корабля по 1 клетке, 3 корабля по 2 клетки, 2 корабля по 3 клетки, 1 корабль в 4 клетки. Необходимо поразить каждую из клеток кораблей. Два игрока вводят позиции кораблей в виде цифр 1, 2, 3, 4 в соответствующие элементы матрицы, тем самым определяя конфигурацию и положение кораблей. Игроки по очереди "наносят удары" по кораблям противника. Если позиция корабля указана верно, то она помечается кре-стиком на поле. Предусмотреть вариант игры, когда одним из играющих является ЭВМ. Разработка эскизного и технического проектов программы Стандарт ГОСТ 19. Назначение и область применения Необходимо разработать учебную программу. Область применения: досуг программиста. Поскольку ста-вится задача разработать схема морской бой для Windows, то использоваться программа может под управлением Windows 9x. Постановка задачи Для отображения кораблей на поле будем использовать визуальный компонент TGridString. Расстановка кораблей производится мышью. Игрок, который схема морской бой корабли, сначала нажимает на клетку, в которой будет начинаться корабль, а потом на клетку, в которой он будет заканчиваться. Корабли расставляются по по-рядку, т. Размер корабля проверяется, и корабль не по-ставится, если игрок ткнул в клетку, которая дальше или ближе запланированной. Для однопалубных кораблей схема морской бой ткнуть в клетку только один раз. При запуске игры нужно сделать выбор, игра происходит против человека схема морской бой против компьютера. Выбор будет храниться в глобальной переменной на протяжении игры для того, чтобы при схема морской бой хода определять, нужно ли визуально сменить поля. При игре против компьютера этого делать не следует. После расстановки кораблей первым левым игроком происходит расстановка кораблей другим игроком. Если игра идёт против человека, то левое поле скрывается, и правый игрок расставляет корабли. Если же вы-бран режим игры против компьютера, то компьютер расставляет корабли в случайном порядке. При расстанов-ке кораблей компьютером должны быть соблюдено правило, что корабли не могут находиться в соседних или смежных клетках. Алгоритм расстановки наугад и проверки, может ли он там стоять — не самый лучший, т. Алгоритм расстановки в игре следует реализовать следующим образом: для каждого корабля происходит перебор схема морской бой и проверка, может ли он встать в этой точке. Если может, то координаты той точки сохраняются. После просмотра всех точек поля случайным образом выбирается одна из сохранённых координат. С каждым следующим кораблём количество мест, в которые он может встать, будет уменьшаться. После расстановки кораблей случайным образом происходит выбор того, кто будет первым стрелять. В случае попадания игрок ходит ещё раз, в случае промаха происходит смена стреляющего. При игре против че-ловека следует сделать двухсекундную паузу, чтобы первый игрок успел отвернуться, после схема морской бой показываются поля для другого игрока. Схема морской бой случае игры против компьютера, поля показывать не надо. После того, как первый игрок промахнулся, ход переходит к другому игроку. Для игры с компьютером до-бавим невизуальный компонент TTimer, который будет проверять каждые несколько секунд, можно ли стре-лять. Если можно — будет произведён выстрел по полю схема морской бой игрока. Для отображения полей нам понадобится хранить реальное расположение кораблей и координаты промахов и попаданий для каждого игрока. После каждого выстрела нужно проверить, есть ли ещё неподбитые корабли. Если все корабли подбиты — выводится сообщение о выигрыше. Описание алгоритма При запуске игры программа просит выбрать противника и сохраняет выбор пользователя в глобальной переменной pcopponent. Элементы формы выбора противника скрываются и показывается второе поле. Первый игрок расставляет свои корабли. Схема морской бой переменная ведёт подсчёт расставленных кораблей. Когда количество схема морской бой станет равно 10, настанет очередь второго игрока расставлять корабли. Если была выбрана игра против компьютера, то корабли расставятся случайным образом. В случае игры против человека, поле первого игрока с расставленными кораблями будет скрыто, и второй игрок получит возможность расста-вить корабли на схема морской бой усмотрение. По окончании расстановки кораблей вторым игроком выбирается игрок, ко-торый будет ходить первым. Все последующие нажатия на поле будут трактоваться как выстрел. При промахе программа ждёт пару се-кунд и ход переходит к другому игроку. В случае попадания, проверяется, остались ли у противника ещё ко-рабли. В случае наличия кораблей текущий игрок стреляет ещё раз. Если кораблей нет, значит следует вывести сообщение о победе. Обобщенная блок-схема алгоритма игры представлена на рисунке 1. Организация входных и выходных данных Входными данными являются: тип соперника и координаты расставленных кораблей. Глобальные переменные, используемые в программе и описанные в Unit1, приведены в таблице 1. Таблица 1 Переменная Тип Описание leftfield Двумерный массив целого типа, схема морской бой из двух 10 строк и 10 столбцов Хранит реальное расположение кораблей схема морской бой левого схема морской бой. Выбор состава технических и программных средств Делается вывод о необходимости использования интегральной среды разработки программ Borland C++ Builder. Среда Borland C++ Builder позволяет достаточно быстро разрабатывать приложения для Windows. Тех-нические схема морской бой компьютера: Pentium 166 МГц и выше; объём оперативной памяти 128 Мб; не меньше 115 Мб на жёстком диске. Дополнительных средств принтер, сканер и т. Глава 2 Разработка рабочего проекта 2. Разработка программы Для разработки приложения "Морской бой" используются средства визуального программирования Borland C++ Builder. Проект программы содержит одно окно: Form1. При запуске игры в его правой схема морской бой содержится форма выбора противника. Схема морской бой выборе противника форма схема морской бой и вместо неё появляется поле второго игрока. Форма выбора противника представлена на рисунке 3, окно программы после выбора противника — на рисунке 4. Написание программы Программную реализацию разработанных алгоритмов содержат обработчики событий. После запуска игры следует выбрать противника. При нажатии на кнопку Button1 обрабатывается событие Onclick, которое запоминает тип противника, прячет элементы формы выбора соперника, показывает поле вто-рого игрока и вызывает функцию StartNewGameв которой происходит установка значений по умолчанию. Далее программа ожидает клика по левому полю. При нажатии мышью на клетку левого поля, StringGrid1, обрабатывается событие OnSelectCell. Если кораб-ли ещё не расставлены, вызывается функция ManualPlacing, которая определяет, пытается ли игрок поставить начало корабля, или его конец, и ставит начало или конец корабля. В случае, если корабли схема морской бой расставлены, идёт дуэль, вызывается функция PlayerShootsсхема морской бой данную клетку. Каждый раз при отрисовке клетки поля игрока на форме срабатывает событие OnDrawCell, в котором вызы-вается функция CellColorer, раскрашивающая поля. В зависимости от того, кто сейчас ходит функция раскра-шивает одно поле полностью открытым, а на другом — только те места, куда стрелял текущий игрок. Корабли левого игрока раскрашиваются синим цветом, корабли правого — красным. Схема морской бой в корабль отмечается крестиком на соответствующем цветном фонесхема морской бой отмечается кружочком на белом фоне. На форме находится невизуальный компонент Timer1. В начале игры его свойство Enabled установлено в False. Момент включения таймера и его функция зависит от того, против кого мы играем. При игре против компьютера таймер включится после выбора того, кто будет стрелять первым. При игре против человека тай-мер включится в схема морской бой промаха игрока. При игре против компьютера таймер будет проверять, настал ли черёд компьютера схема морской бой. Если настал — вызывается функция ComputerShootsкоторая стреляет по левому полю. При игре против человека, таймер включится после про-маха игрока, подождёт две секунды, чтобы игрок успел отвернуться, после чего сменит поля и выключится. Спецификация программы Исполняемый файл программы "Морской бой" имеет название Seawar. Его работоспособность не зави-сит от расположения на диске. Наименования файлов входящих в проект и краткая информация об их содержа-нии отображены в таблице 3. Таблица 3 Наименование Обозначение Примечание seawar. Left + 9, Rect. Left + 9, Rect. Left + 9, Rect. Left + 9, Rect. Тестирование программы После запуска приложения появляется главное окно программы в центре экрана. Вид программы представ-лен в приложении 1. Выбираем компьютер в качестве противника и нажимаем кнопку "Начать игру". Появляет-ся поле второго игрока. Расставляем корабли на левом поле. Сначала ставится 4-х палубный корабль: нажимаем на клетку, в которой будет начало корабля, потом на клетку, в которой будет конец корабля, так чтобы корабль занимал 4 клетки. Подобным образом ставим два 3-х палубных и схема морской бой 2-х палубных корабля. Однопалубные корабли ставятся одним нажатием. Играем с компьютером, нажимая на клетки его поля, когда вокруг поля появляется фиолетовая рамка. Вид окна программы на последнем этапе игры представлен в приложении 1, четвертый рисунок. Внедрение В разделе описываются руководство ГОСТ 19. Условия выполнения программы Данное приложение, разработанное в среде Borland C++ Builder, способно работать на персональных ком-пьютерах с минимальными требованиями Pentium 100, оперативной памятью 32 Мб, операционной средой Windows. Выполнение программы Запустить приложение можно также как и любое другое. Окно приложения загрузится и появится в центре экрана. Для начала игры следует нажать кнопку "Начать игру". Для выхода из схема морской бой необходимо нажать Alt+F4 или щелкнуть левой кнопкой мыши по крестику в правом верхнем углу экрана. Сообщение оператору Постоянно на протяжении всей игры в строку состояния схема морской бой подсказки пользователю. Так, например, в первую панель строки под левым полем выводятся сообщения о промахе, попадании или потоплении кораб-ля левым игроком: "Мимо! Во вторую панель выводятся такие же сообщения для правого игрока. Заключение В заключении проведённой разработки игры в рамках курсовой работы можно сделать нижеследующие выводы. При разработке небольших логических компьютерных игр для операционной системы Windows следует использовать среды разработки, такие как Borland C++ Builder или Delphi, так как они содержат схема морской бой компоненты, упрощающие вывод информации и позволяют сосредоточиться на логике работы программы, и не задумываться над визуальной отрисовкой. При проектировании игры для нескольких человек, следует определять, какие действия будут выполняться для всех игроков, и при программировании выносить такие действия в отдельные функции, что позволит сокра-тить схема морской бой кода и сделать его более понятным. Следует помнить, что при выборе клетки компонента TStringGrid передаётся указатель на StringGrid, который содержит эту клетку. Поэтому в данной курсовой рабо-те нажатия на поле игрока передают этот указатель в общие для обоих игроков функции установки корабля или стрельбы по кораблю, в которых уже и происходит действие для поля конкретного игрока. Несмотря на то, что разработка игры является увлекательным занятием, во время написания приложения следует, по возможности, максимально автоматизировать ввод данных. Во время разработки, данное приложе-ние содержало функцию, которая автоматически расставляло корабли и для левого игрока. Borland C++ Builder 5. Схема морской бой C++ Builder: Книга рецептов. Архангельский Язык С++ в С++Builder. Справочное и методическое пособие. Приложение 1 Виды программы, принимаемые во время ее тестирования. Приложение 2 К семестровой курсовой работе прилагаются исходные файлы. Наименование Обозначение Размер seawar.

Также смотрите:

Комментарии:
  • Игорь Шмаков

    25.10.2015

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