Реферат по предмету "Программирование"


Программ-игра «Морской бой», с использованием анимированных графических объектов и возможностью управлять их движением с помощью клавиатуры

Домашняя работа по программированию за второй семестр
Игра «Морской Бой»
Выполнил: Макаров В. А. группа: С-26
Игра «Морской Бой» Требуется: Разработать программу-игру «Морской бой», с использованием анимированных графических объектов и возможностью управлять их движением с помощью клавиатуры.
Эскиз: [pic]
Аномалии: |Аномалия |Действие программы | |1) Произошла ошибка инициализации|Вывод сообщения: | |графики |«InitGraph ERROR!» | |2) При игре было допущено более |Вывод сообщения | |пяти промахов. Проигрыш. |«GAME OVER» |
Внешняя спецификация:
Вход: |Vipolnil: Makarov Vladimir | |Group: C-26 | | | | | | | |Press 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:=ложь | |цикл для k:=1 до r делать | |l:=1 | |цикл пока l


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.