Домашняя работа
по программированию
за второй семестр
Игра «Морской Бой»
Выполнил: Макаров В. А.
группа: С-26
Игра «Морской Бой»
Требуется:
Разработать программу-игру «Морской бой», с использованием анимированных графических объектов и возможностью управлять их движением с помощью клавиатуры.
Эскиз:
Аномалии:
| Аномалия | Действие программы |
| 1) Произошла ошибка инициализации графики | Вывод сообщения: «InitGraph ERROR!» |
| 2) При игре было допущено более пяти промахов. Проигрыш. | Вывод сообщения «GAME OVER» |
Внешняя спецификация:
Вход:
| Vipolnil: Makarov Vladimir Group: C-26 Press <Enter> to start play game! |
Выход при проигрыше:
| GAME OVER |
Метод:
Описание:
Во время игры на экране изображена водная поверхность и две скалы по бокам. Время от времени из-за скал выплывают различные корабли, которые движутся вдоль горизонта к противоположенной скале. Существует три типа кораблей: маленький, средний и большой. Тип корабля всегда выбирается случайным образом. Скорость каждого корабля зависит от размера самого корабля: маленький самый быстрый, остальные соответственно обладают более низкой скоростью. Цель игрока состоит в том, чтобы с помощью пушки и прицела подбить как можно большое количество кораблей и не промахиваться. Количество подбитых кораблей (scope) показывается в нижнем левом углу экрана. Игрок должен нацеливать пушку влево или вправо и стрелять по возможности на опережение, так как снаряд вылетающий из пушки обладает относительно малой скоростью. В случае промаха игрока, корабль разворачивается и уплывает в обратную сторону. Если игрок совершил более пяти промахов, то он проигрывает и выходит из игры.
Прицеливание осуществляется с помощью стрелок (вправо и влево) на клавиатуре, пробел – стрельба и escape – выход.
Основной метод:
В основе работы программы лежит главный зацикленный цикл, выход из которого осуществляется только при выходе или при проигрыше. В цикле выполняются действия, зависящие от состояния флагов, так как каждому событию в программе соответствует свой флаг. Так же в этом цикле отслеживаются нажатия определённых клавиш. Цикл прокручивается с, заранее определённой и постоянной, временной задержкой.
Когда какой-нибудь флаг принимает истинное значение, в цикле проделывается соответствующее ему действие, после чего флаг сразу сбрасывается в положение ложь.
Рисование всех двигающихся объектов производится для удобства в отдельных процедурах. В качестве параметров туда передаётся координата по оси или x или y, так же туда передаётся флаг, указывающий на то – рисовать объект или стирать. Под стиранием объекта понимается его рисование цветом фона.
Движение всех графических объектов в программе осуществляется стандартным методом: сначала рисуется объект, а после временной задержки он рисуется на том же месте цветом фона (стирается) и рисуется в новом месте.
Скорости всех двигающихся в программе объектов различны:
Vснаряда > Vкорабля №1 > Vкорабля №2 > Vкорабля №3
Временная задержка во всей программе постоянная и используется один раз за цикл. Если один проход цикла назвать тактом, то разность скоростей объектов реализована за счёт того, что каждый объект перемещается на единицу расстояния не за каждый такт, а за каждый n -ный такт, а n определено для каждого объекта по-разному. Чем меньше n , тем быстрее скорость. В данной программе все скорости постоянны.
Алгоритм:
Procedure target (ix: integer; bb: boolean)
| Входные данные: ix:цел bb:лог Внутренние постоянные переменные: iy=200 начало если bb то {Отображение} Установить цвет(green) Установить тип заливки(SolidFill,green) Нарисовать закрашенный эллипс(ix,430,26,100) Выбрать цвет(lightgreen) Нарисовать линию(ix-10,iy,ix+10,iy) Нарисовать линию(ix,iy-10,ix,iy+10) иначе {Стирание} Установить тип заливки(SolidFill,blue) Установить цвет(blue) Нарисовать закрашенный эллипс( (ix,430,26,100) Установить цвет(blue) Нарисовать линию(ix-10,iy,ix+10,iy) Нарисовать линию(ix,iy-10,ix,iy+10) всё конец |
Часть 2: Поиск в тексте единиц и вставка после них нулей
| Входные данные: var st:мас :стр r:цел var one:лог Выходные данные: rez:масс :стр iz:цел Внутренние переменные: k,l:цел начало one:=ложь цикл
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов. |