Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.17 Mб
Скачать

Министерство Образования и Науки РФ

ФГБОУ ВПО «Дагестанский Государственный Технический Университет»

Кафедра ПОВТиАС

Пояснительная записка к курсовой работе

по дисциплине:

«Программирование»

на тему:

«Разработка программы “Морской бой ”»

Выполнил:

студент 2 курса,

гр. ФКТВТиЭ – У-126

спец. ПОВТиАС

Мусаев М.А

Приняла: ст.пр. Шишова И.В.

Махачкала 2013

Задание.

Составить программу игры «Морской бой». Игра происходит между двумя участниками, один из которых ЭВМ, на поле размером 10Х10 клеток. Каждый из участников расставляет на поле 10 одинаковых катеров (катера не могут касаться друг друга). При попадании в катер при очередном ходе он считается уничтоженным. Побеждает уничтоживший первый катера соперника. Если участник во время очередного хода уничтожил катер противника, то он ходит еще раз. Ход в клетку соседнюю с уничтоженным катером. Считается недействительным и повторяется. ЭВМ расставляет катера случайным образом. Её партнер вводит координаты катеров с клавиатуры.

Аннотация

Пояснительная записка содержит описание программы, в которой разрабатывается игра «Морской бой». Текст программы приведен на языке C++.

Пояснительная записка включает:

страниц – 44;

изображений –18 ;

приложений –1 .

Ключевые слова:

программирование, С++, функции, алгоритм(блок-схема).

Содержание

Введение ……………………………………………………………………………………………...

5

1. Постановка задачи …………………………………………………………………………..

7

1.1. Анализ задачи ……………………………………………………….............................

7

1.2. Формальная постановка задачи ………………………………………………..

8

1.3. Алгоритм программы ………………………………………………........................

9

2. Программирование задачи ……………………………………………………………...

17

3. Тестирования программы ……………………………………………………………….

23

Заключение …………………………………………………………………………………………

27

Литература …………………………………………………………………..................................

28

Приложение …………………………………………………………………................................

29

Введение

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

Язык программирования – способ точного формулирования задачи в процессе подготовки ее к решению. Языки позволяют понимать программирование как процесс перевода задания для компьютера, выраженного определенным языком, на другой язык – машинный. Одним из наиболее популярных языков является язык программирования высокого уровня C++.

C++ – компилируемый строго типизированный язык программирования общего назначения. Это чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения. Поддерживает разные парадигмы программирования: процедурную, обобщённую, функциональную; наибольшее внимание уделено поддержке объектно-ориентированного программирования. C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр). Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ. Стандартная библиотека C++ включает в себя набор средств, которые должны быть доступны для любой реализации языка, чтобы обеспечить программистам удобное пользование языковыми средствами и создать базу для разработки как прикладных приложений самого широкого спектра, так и специализированных библиотек.

Целью данной курсовой работы является анализ и разработка алгоритма программы игры «Морской бой». Программа должна содержать два поля размером 10Х10 клеток. Каждый из участников расставляет на поле 10 одинаковых катеров (катера не могут касаться друг друга). При попадании в катер при очередном ходе он считается уничтоженным. Побеждает уничтоживший первый катера соперника. Если участник во время очередного хода уничтожил катер противника, то он ходит еще раз. Ход в клетку соседнюю с уничтоженным катером. Считается недействительным и повторяется. ЭВМ расставляет катера случайным образом. Её партнер вводит координаты катеров с клавиатуры.

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

1. Постановка задачи

По заданию необходимо разработать программу, игра «Морской бой».

Игра происходит между двумя участниками, один из которых ЭВМ, на поле размером 10Х10 клеток. Каждый из участников расставляет на поле 10 одинаковых катеров (катера не могут касаться друг друга). При попадании в катер при очередном ходе он считается уничтоженным. Побеждает уничтоживший первый катера соперника. Если участник во время очередного хода уничтожил катер противника, то он ходит еще раз. Ход в клетку соседнюю с уничтоженным катером. Считается недействительным и повторяется. ЭВМ расставляет катера случайным образом. Её партнер вводит координаты катеров с клавиатуры.

1.1. Анализ задачи

Смысл игры «Морской бой» следующий: создаётся два поля 10х10, на которых размещаются по 10 кораблей разного размера (один – размера четыре, два – размера три, три – размера два и четыре – размера один); корабли могут располагаться горизонтально и вертикально; два корабля не могут находиться в соседних полях; каждый игрок видит только свои корабли и обстрелянные поля противника; если игрок ранил корабль, то поле обозначается специальным значком «@@» ; игрок стреляет до первого промаха, далее ход переходит к противнику; как только кто-то из игроков убьёт все корабли противника, он выигрывает, все игра окончена.

Для сокращения объема исходного кода и для улучшения его читаемости используем функции. Они позволяют вынести часто повторяющиеся выражения в отдельный блок и затем, по мере надобности, обращаться к нему. В программе будут созданы 10 функций:

  1. главная функция, в которой осуществляется вызов этих функций;

  2. функция для создания клетки;

  3. функция для создания и расстановки кораблей;

  4. функция для расстановки кораблей игрока;

  5. функция для расстановки кораблей компьютера.

  6. Функция для осуществления боя.

  7. Функция для осуществления хода игрока.

  8. Функция для осуществления хода противника.

  9. Функция для удаления строки.

  10. Функция для заставки.

Каждую функцию подробнее рассмотрим в главе «Программирование задачи».

1.2. Формальная постановка задачи

Исходные данные

  1. Способ расстановки кораблей: случайным образом или вручную. otv-некоторое целое число.

  2. Координаты расстановки кораблей (x, y) .

  3. d-целое число, расставляющие корабли горизонтально или вертикально.

  4. Координаты выстрела (X,Y).

Результирующие (выходные) данные

Выходными данными является:

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

Вывод сообщения- промахнулись вы или промазали.

Результатом выполнения программы является вывод сообщения – победил игрок или победил компьютер.

1.3. Алгоритм программы

Рис.1. Блок-схема функции main()

Рис.2. Блок-схема функции void zast()

Рис.3. Блок-схема функции void kletka (int x, int y, char name[10])

Рис.4. Блок-схема функции void sozd_korabl ()

Рис.5. Блок-схема функции int test_user_xy (int x, int y, int d, int s)

Рис.6. Блок-схема функции int test_cpu_xy (int x, int y, int d, int s)

Рис.7. Блок-схема функции void bitva ()

Рис.8. Блок-схема функции int user_hod (int x, int y)

Рис.9. Блок-схема функции int cpu_hod (int x, int y)

Рис.10. Блок-схема функции void deletestring (int y, int count)

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