"Морской бой": разработка программы

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

Задание

 

Разработать программу на языке C++, реализующую игру Морской бой.

Создать объект корабль, у которого должно быть свойство цвет и метод прорисовки. От него создать четыре потомка (корабли с соответствующими размерами). От этих потомков создать необходимое количество потомков (в зависимости от размеров корабля, если 4, то 1 корабль, если 3, то 2 корабля и т.д.), которых должны иметь свойство позиция. При попадании в корабль сменить его цвет на другой. Клетки реализовать объектом (со свойствами позиция и методами прорисовки). При попадании в пустую клетку сделать ее отличимой от остальных (например, поставить в ней крест), кроме того не позволять игроку и компьютеру стрелять в нее. На экране отображать поля обоих игроков. Компьютеру задать простую логику: добивать корабль, не стрелять в соседние клетки от затопленного корабля и т.д. На экране отображать счетчик оставшихся кораблей игрока и компьютера.

 

 

Аннотация

 

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

Курсовая работа содержит:

рисунков - 6,

графиков - 0,

таблиц - 0,

схем - 1,

страниц - 19.

 

 

Введение

программирование игра виртуальный

Целью данной курсовой работы является разработка карточной игры. Это задача реализуется с помощью объектно-ориентированного подхода. Выбор карточной игры был дан на усмотрение студента, и среди многочисленных вариантов предпочтение было отдано простой игре 21. Суть игры заключается в том, что бы набрать количество очков равное или максимально приближенное к 21. Игра предназначена для двоих игроков.

Обычно перед началом разработки любой игры должна сформироваться идея, а издатель/разработчик должен дать зелёный свет.

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

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

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

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

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

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

 

 

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

 

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

Клетку представим объектом класса Kletka, который хранит координаты клетки и имеет метод прорисовки. Корабли реализуем двумя классами: базовым классом Base_Korabl, со свойством цвет и виртуальным методом прорисовки, и производным от него классом Kor_potomok, который содержит, позицию корабля, размер, положение, и в котором переопределен метод прорисовки базового класса для прорисовки кораблей разного размера.

Использование объектно-ориентированного программирования упрощает нам задачу. Объектно-ориентированное программирование - это подход к разработке программного обеспечения, основанный на объектах. Этот подход позволяет максимизировать принципы модульности и "сокрытия информации". Объектно-ориентированное программирование базируется на связывании или инкапсуляции структур данных и процедуры, которая работает с данными в структуре, с модулем.

Объектно-ориентированный принцип разработки дает много преимуществ. Например, каждый объект инкапсулирует его структуру данных с процедурой, используемой для работы