Разработка игровой программы Морской бой icon

Разработка игровой программы Морской бой



НазваниеРазработка игровой программы Морской бой
Дата конвертации24.07.2012
Размер278,83 Kb.
ТипРеферат
Разработка игровой программы Морской бой


"ИГРА - вид непродуктивной деятельности, мотив которой заключается не в ее результатах, а в самом процессе. В истории человеческого общества переплеталась с магией, культовым поведением и др. ... Свойственна также высшим животным". Советский энциклопедический словарь ВВЕДЕНИЕ Все, кто имеет дело с компьютером, так или иначе сталкивались скомпьютерными играми, и подавляющее большинство может сходу назватьнесколько игр, которые им особенно понравились. Те, кто уже совсемнаигрался, почти наигрался или еше не наигрался, но в процессе общения скомпьютером уже начал совмещать игры с чем-нибудь более полезным, возможно,хотели бы придумать какие-нибудь свои, не похожие ни на какие другие игры(1). Многое захватывает в таком творчестве. И не сам процесс игры, аразработка игровой вселенной, ее проектирование и реализация. Когда можнослить воедино сценарий, графику, музыку, искусно задуманный и умелозапрограммированный алгоритм — создать единый фантастический мир, живущийпо законам, которые ты же для него и придумал. В данной курсовой работе речь пойдет о создании несложной игровойпрограммы «Морской бой», которая и будет являться объектом исследования. В первой главе данной курсовой работы рассматриваются аспектыпрограммирования игр с использованием визуальных компонентов, в пункте 1.1.приводится аналитический обзор игрового программного обеспечения,классификация игр. В пункте 1.2. приводится описание компонентов,используемых при реализации практической части курсовой работы. В пункте1.3. показываются возможности использования визуальных компонентов. Во второй главе приведены этапы разработки программы, такие какпостановка задачи, алгоритм реализации и описание пользовательскогоинтерфейса. В заключении приведены выводы по курсовой работе, достоинства инедостатки визуальных методов программирования. Список использованных источников содержит полный перечень техническойлитературы, использованной для написания данной курсовой работы. Приложения содержат блок-схемы всех процедур программы, и текст самойпрограммы.1. ПРОГРАММИРОВАНИЕ ИГР С ИСПОЛЬЗОВАНИЕМ ВИЗУАЛЬНЫХ КОМПОНЕНТОВ 1. Аналитический обзор В последнее время продажи программного обеспечения увеличиваютсянезначительно, в то время как продажи игровых программ возрастаютэкспоненциально. Игры для платформы Windows составляют подавляющеебольшинство. Игровое программное обеспечение – это третья по размерамдоходов отрасль индустрии программного обеспечения после текстовыхпроцессоров и электронных таблиц (1). До недавнего времени среда Windows использовалась в основном какплатформа для создания игр, первоначально разработанных для Macintosh. Этоосуществлялось на базе пакета QuickTime фирмы Apple. Примерами таких игрмогут быть Mysl (Broderbund/Cyan), Wrath of the Gods (Maxis/Luminaria) инекоторые другие. В ряде случаев использовался пакет Video for Windows,позволяющий отображать оцифрованное видео. Затем появились библиотеки WinGи WinToon, на базе которых фирма Sierra создала игру King's Quest VII. Этобыли первые попытки использовать Windows как платформу для создания игровыхпрограмм. Преимущества такого подхода достаточно очевидны — единыйинтерфейс, наличие стандартных драйверов для большинства мультимедийныхустройств и возможность управления ими стандартными способами. Затемпоявилась новая версия — Windows 95, в состав которой была включенабиблиотека WinG (как подсистема GDI), и перед разработчиками открылисьболее широкие возможности. Указать точное число компьютерных игр очень трудно. Можно толькопримерно оценить число различных наименований игр, находящихся на рынке влюбое время (2).Классификация компьютерных игр может быть следующая:1. Приключенческие игры. Игры могут быть великолепным средством рассказаистории. Эти игры представляют собой мультиплицированный рассказ, в которомможно видеть и контролировать основной персонаж (а иногда и более одного) вочень детальном повествовании. Это - компьютерные версии обычныхповествований, начиная от душещипательных рассказов до технотриллеров,научно-фантастических приключений, фантазий и рассказов, до предела набитыхразными обманами и мошенничествами. Приключенческие игры развиваются вокругразличных загадок и препятствий, которые нужно преодолеть по мере развитиярассказа.2. Фантастические игры, в которых требуется играть некоторую роль (ролевыеигры). Их лучше всего определить как компьютеризованную версию рассказаDungeons and Dragons («Подземелья и драконы»), но действие не всегдапроисходит в населенном варварами средневековом мире. Часто оно происходитв открытом космосе или в каких-либо областях будущего. В этих играх обычнонужно управлять группой персонажей, которые становятся по мере развитияигры сильнее и умнее, и делать некоторые другие вещи. Так же изменяются ивраги. Сами рассказы в играх этого типа обычно менее детальны, чем вприключенческих играх, с большим упором на задачу побить чудовгщ, чемрешить загадки.3. Имитаторы воздушных и космических сражений. Это не военные игры, вкоторых может оказаться неограниченное число вооружений и врагов, эти игрыпытаются быть точными имитаторами полетов и сражений на реальных боевыхсамолетах. Эти игры предназначены для тех, кто хочет летать на больших иочень мощных машинах. Кабины пилотов выглядят как настоящие, инструментыработают как в настоящем бою, оружие является имитацией реальносуществующего, а полетные характеристики самолета (и самолета врага)соответствуют действительным. Имитаторы космических сражений выдуманы,однако они разработаны с целью точно повторить реальные маневры в космосе.4. Имитаторы наземных и морских сражений. Игры разработаны для военногооборудования и военных машин. Эта категория игр включает в себя симуляторынастоящих подводных лодок, кораблей и танков, и позволяет игрокам испытатьреальные сценарии сражений, и выжить для того, чтобы понять, какиспользовать правильную тактику в следующей игре.5. Самолеты, поезда и автомобили. В отличие от этих имитаторов, все прочиеявляются имитаторами военного типа или имеют очень сильный упор насражение. Эти же игры не относятся к таким имитаторам. Конечно, можнопроехать на автомобиле по береговой дороге в Калифорнии со скоростью, вдвоепревышающей разрешенную, и потанцевать на всех четырех колесах. Но такжеможно использовать эти игры, чтобы научиться безопасно летать средиоблаков, и получать удовольствие от свободы полета. Даже можно делать такиевещи, как постройка и управление собственной железной дорогой.6. Спортивные имитаторы. Здесь необходимо обучать профессионалов иуправлять ими. Эти игры - нечто большее, чем простое изображениебейсбольных игр в картинках, в некоторых из них можно даже контролироватьреальное действие. Спортивные имитаторы дают возможность вести рискованнуюигру в нужное время, доказать, что можно выиграть с помощью быстроты, иметьв команде Генри Аарона и Теда Вильямса, или переиграть Томми Лазорду.7. Аркадные игры/игры действия. Это классические «игры действия» - всезависит от того, насколько быстро руки могут дергать джойстик. Обычно о нихговорят как о бессмысленных, так часто и бывает. С другой стороны, бываютвремена, когда появится потребность дать отдохнуть мозгам. Во многие изэтих игр можно играть с помощью клавиатуры или мыши, и джойстики не всегданеобходимы. В чем есть необходимость, так это в быстрых рефлексах.8. Настольные игры, солитер и салонные игры. Многие старые любимые игрыпоявились в компьютерном варианте. Больше не нужно заниматься поискамипартнера, чтобы поиграть в шахматы, бэкграммон и риск. Некоторые из этихигр даже научат мошенничать наедине с монитором, и при этом не придетсявозвращаться домой с пустым карманом после неудачной ночи.9. Имитаторы реальности («игры в бога»). Это игры, которые позволяютсоздавать реальный мир из ничего. Это игры, которые позволят создатькомпьютерный мир из набросков, управлять городом, страной или даже миром.10. Игры, в которых делаются деньги. Они копируют игровую деятельность иучат высшим формам азартных предприятий: фондовая биржа, торговлянедвижимостью. Они также позволят попробовать управлять корпорацией. В этиигры можно играть для удовольствия, или использовать их для того, чтобынаучиться карабкаться вверх по лестнице карьеры.11. Стратегические и военные имитаторы. Здесь можно принимать участие ввеликих исторических событиях, взять на себя командование немецкой армией уЛенинграда или армией Наполеона у Ватерлоо. Это военные стратегии прошлого,настоящего или будущего.12. Игры для детей. Если есть домашний компьютер, и чтобы дети научилисьего использовать, то эти игры достойны внимания. Реальность нашей культурытакова, что, как только малыши станут координированы настолько, чтобыправильно пользоваться клавиатурой или мышью, они хотят сразу приняться затакие игры, как Wing Commander, Populous или Eye of the Beholder. Однако жевокруг существует множество игр, в которые дети могут играть просто чтобыполучить удовольствие, или же научиться чему-либо.13. Игры «On-line». Было бы ошибкой считать, что все компьютерные игры дляIBM PC приходят к нам на дискетах или CD-дисках, плотно упакованных вкрасивые пакеты. Фактически, весь обширный мир компьютерных игр доступен ипо телефону. Эта категория игр известна как «он-лайн» и включает в себяразнообразные игры, которые имеются в больших коммерческих «он-лайн» сетяхи во многих локальных сетях типа «доска объявлений» (bulletin board system— BBS). Для игр «он-лайн», кроме личного компьютера, необходимы модем икредитная карточка.14. Игры Shareware. Будет ошибкой предположить, что все компьютерные игрыприходят в красивых упаковках. Многие хорошие игры приходят вовсе безупаковок, и стоят от 10 до 30 долларов. Обычно можно их опробовать за оченьнизкую плату или вовсе бесплатно в течение нескольких дней и, еслизахочется получить легальную копию, следует послать по почте чек компанииили лицу, которые создали игру.15. Классические игры. Мир PC-игр во многом похож на мир популярной музыкии фильмов: создается много игр различных наименований, некоторые становятсяхитами и держат популярность в течение некоторого времени, другиепропадают. Постепенно эти хиты становится трудно отыскать, и мало-помалуони заменяются другими лучшими играми. Очень мало PC-игр живут более 2-3лет. Из тех, что действительно остаются, многие настолько хороши, чтостановятся вечными, и они заслуживают того, чтобы в них играли. Некоторые,как Flight Simulator или King's Quest, обновляются время от времени, такчто их можно рассматривать как практически новые игры. Остальные остаютсянеизменными, и уровень продаж у них таков, что они остаются в обращении, ноуже не рекламируются активно их производителями. Это игры, которые небросаются в глаза, «золотые» игры — классические PC-игры. Компьютерные игры — отнюдь не новое изобретение. Их история началасьне с конца 1970 годов. Начало лежит гораздо раньше, тогда, когда ДжонКеннеди уже пробыл президентом Соединенных Штатов всего несколько месяцев(2). На самом деле все началось с модели железной дороги. СтудентыТехнологического института в Массачусетсе были немало удивлены количествомспособов, с помощью которых можно было разместить органы управленияминиатюрной железной дорогой. Позднее, когда они наконец получиливозможность работать на больших компьютерах института, их работа в бинарныхвычислениях — ведь именно такие вычисления имитируются выключателямижелезной дороги — позволили им пройти хорошую подготовку в компьютерномделе. Стив Рассел был одним из членов Клуба Моделей Железных дорог ВысокойТехнологии в Технологическом институте. Будучи хорошим программистом, онлетом 1961 года работал в Статистической лаборатории, когда у него и егодрузей появилась идея перенести «мыльные» научно-фантастические рассказыЕ.Е.Смита на компьютеры. В 1962 году Стив разработал программу для PDP-1.Эта самая машина теперь выставлена в компьютерном музее Бостона вМассачусетском Технологическом институте. В «Космической Войне», как называлась эта программа, двасинтезированных компьютером ракетных космических корабля (один похожий натолстую сигару, а другой на длинную обтекаемую трубу) могли летать поэкрану, на котором помещалось изображение космоса. Игроки могли нажимать накнопки, чтобы заставить ракеты менять направление движения почти так же,как позднее в игре Asteroids владельцы игровых машин Atari управляли своимикораблями. Каждая ракета несла на себе 31 торпеду, и, в то время как онилетели по экрану, игрок мог выстрелить точечку из носа своей ракеты внаправлении другой. Если точка действительно пересекала очертания другогокорабля, программа определяла, что торпеда успешно поразила другой корабльи другой корабль «взрывался». Взорванный корабль пропадал с экрана изаменялся нагромождением точек, которые изображали его остатки. Конечно, общество программистов и взломщиков программ не можетудовлетвориться качеством любой программы, независимо от того, насколькоона легка или интересна. Изменения были неизбежны. Один из друзейпрограммиста, будучи недовольным случайным образом построенной картойзвездного неба, которую Рассел первоначально поместил в игру, взял звездныйатлас и ухитрился запрограммировать нашу собственную галактику, вплоть дозвезд пятой величины. Другой добавил гравитацию в игру, а третий ввелвозможность побега в гиперпространство, при этом, чтобы показать место, гдекорабль покинул звездную систему, на экране оставался след ускорения. Даже Рассел сделал некоторые изменения. Зная, что у настоящих торпедвероятность поражения цели не 100%, а меньше, он решил придать звезднымторпедам возможность ошибки, и добавить случайный элемент в траекторииракет и время взрыва. Его друзья терпеть не могли новую версию, посколькуони хотели бы иметь в игре ту же степень уверенности, которая существовалав программировании. Рассел вернул программу к прежней версии и, не успели оглянуться, как«Космические войны» оккупировали компьютеры колледжей по всей стране. «Космические войны» стали настолько популярны к середине шестидесятых,что Нолан Бушнелл, создатель Atari, очень привязался к игре во время учебыв университете штата Юты. К 1970 году Бушнелл построил свою собственнуюмашину, использовав 185 встроенных цепей для подсоединения к телевизору идля выполнения одной-единственной функции. Эта функция была игрой«Компьютерный Космос», вариант «Космических Войн», в котором ракетасражалась с летающими тарелками вместо другого корабля. «Космические Войны» были не единственным предшественником коммерческихкомпьютерных игр, появившихся на больших компьютерах в колледжах. Какой-тонеизвестный автор начал играть в игру Star Trek («Звездный путь») вшестидесятых годах. Никто не знает, кто первым создал такую игру — он илиона, вероятно, подали бы судебный иск, если бы автор игры был точноопределен — но эта игра также появилась на колледжских компьютерах по всейстране к 1969 году. Игра «Звездный путь» сама по себе была не очень изощренной. В игребыли линии наподобие решеток, которые позволяли звездным кораблямпутешествовать от одной точки к другой, игра использовала символы дляидентификации кораблей, предоставляла численную информацию в процентах, ипозволяла летать быстрее, чем скорость света. К середине 70-х годов почтина каждой домашней компьютерной системе была доступна та или иная формаэтой игры. Существовала версия этой же игры для IBM под названием StarFleet («Звездный Флот»). Наконец, стоит упомянуть пожалуй наиболее важную игру, Adventure(«Приключения»). В игре использовались двухсловные команды, имя ееразработчика Вилл Краудер. Это была первая приключенческая компьютернаяигра. Кроме того, в конце 70-х была создана игра по имени Zork, котораястала доступна для пользователей домашних компьютеров в 1981 году. Эту игрудо сих пор можно купить. Игра Zork основывается на игре Adventure (2). 2. Описание компонентов, используемых при реализации практической части курсовой работы В практической части данной курсовой работы используются следующиевизуальные и невизуальные компоненты (3, 4, 5) среды программированияBorland Delphi 6.0.1.2.1. Компонент TMainMenuTMainMenu позволяет поместить главное меню в программу. При помещенииTMainMenu на форму это выглядит, как просто иконка. Иконки данного типаназывают невидимым (невизуальным) компонентом, поскольку они невидимы вовремя выполнения программы. Создание меню включает три шага:1) помещение TMainMenu на форму,2) вызов Дизайнера Меню через свойство Items в Инспекторе Объектов,3) определение пунктов меню в Дизайнере Меню. Этот компонент доступен из модуля MENUS, и находится на страницеПалитры компонентов Standard Этот компонент представляет главное меню формы и наследует все методыи свойства TMenu. Особенность его в том, что в нем реализован сложныймеханизм объединения меню. Это необходимо по следующим причинам: 1. Если в приложении имеется несколько форм со своими меню, то для упрощения работы целесообразно соединить их в одно и управлять меню из главной формы. 2. Объединение меню нужно при работе с интерфейсом MDI и его подокнами. 3. Механизм объединения меню используется серверами OLE, запускаемыми по месту нахождения объекта OLE. Загружаясь, сервер дописывает осуществляемые им операции к меню другого приложения. Для того чтобы реализовать объединение меню, у тех форм, меню которыхбудут присоединены к главному, необходимо установить в True свойство: (Рb)property AutoMerge: Boolean. При этом у главного меню оно должно оставаться равным False, иначеглавное меню будет вообще невидимым. Объединение будет происходитьавтоматически при активизации новых форм или серверов OLE. Кромеавтоматического режима, объединение меню можно выполнить при вызове метода:procedure Merge(Menu: TMainMenu). Присоединяемое меню при необходимости может быть легко отсоединеновызовом метода: procedure Unmerge(Menu: TMainMenu). При установленном в True свойстве AutoMerge ссылка на присоединенноеменю будет сохраняться в специальном поле компонента и отсоединяться внужных случаях автоматически (например, при закрытии формы, которой онопринадлежит). Объединение меню происходит по специальным правилам, в основе которыхлежит использование группового индекса (свойства Group Index) каждогообъекта TMenuItem. У пунктов меню одного уровня, в частности всех подменю верхнего уровняв главном меню, свойство GroupIndex является неубывающим, т. е. упоследующего пункта групповой индекс больше либо равен индексу предыдущего.Это требование отслеживается как на этапе разработки, так и на этапеисполнения. Например, пусть пункты меню имеют индексы 0, 3, 4, 5, 6. Есливключить пункт меню с индексом 5 между пунктами с индексами 0 и 3, то 3 и 4будут изменены на 5. А вот изменить большее значение Х на меньшее Y, есливпереди есть пункты с индексом, большим Y, невозможно. Если в этом примерепопытаться изменить индекс 6 на 4, то это приведет к возникновениюисключительной ситуации EMenuError. Для обычных форм объединение происходит только на верхнем уровне вглавном меню во время их активизации. В объединенном меню все подменю будутрасполагаться по возрастанию номера группового индекса, при этом: 1. если в присоединяемом меню есть пункты с таким же групповым индексом, что и в исходном, то все их множество заменяет все множество таких пунктов в исходном меню; 2. все пункты присоединяемого меню, групповой индекс которых не встречается в исходном, добавляются к нему и вставляются на соответствующие их индексу места. К окнам интерфейса MDI все сказанное относится только при запускеприложения. Если в формах приложения со стилем fsMDIChild есть свои главныеменю, то в этот момент они автоматически сольются с главным меню формыfsMDIForm независимо от состояния AutoMerge. На уровне работы с серверами OLE предусмотрены дополнительныевозможности по объединению меню. Если в компонент TOLEContainer загруженобъект OLE, то в конец подменю Edit обычно добавляется подменю, из которогоможно вызвать функции открытия и редактирования этого объекта. Послеактивизации сервера он может не только вставлять свои подменю в главное, нои добавлять новые пункты к уже существующим подменю. Три метода TMainMenu используются для работы с меню OLE: 1. procedure PopulateOle2Menu(SharedMenu: HMenu; Groups: array of Integer; var Widths: array of Longint); 2. procedure GetOle2AcceleratorTable(var hAccel : THandle; var numAccels: Word; Groups: array of Integer) ; 3. procedure Set01e2MenuHandle(Handle: HMENU);1.2.2. Компонент TLabelTLabel служит для отображения текста на экране. Можно изменить шрифт и цветметки, если дважды щелкнуть на свойство Font в Инспекторе Объектов. Видно,что это легко сделать и во время выполнения программы, написав всего однустрочку кода. Этот компонент доступен из модуля STDCTRLS, и находится на страницеПалитры компонентов Standard. Компонент представляет собой статический текст. С помощью этогокомпонента на рабочей поверхности формы можно отобразить информацию,сделать пояснения и показать названия других компонентов. Но он имеет идругую важную функцию — если в составе текста TLabel есть символы-акселераторы, информация об их нажатии может передаваться от TLabel другомуэлементу управления. Свойства компонента приведены в табл.1: Таблица 1 Свойства компонента TLabel|Свойство |Описание ||(Pb) property Caption: TCaption; |Содержит строку с выводимым текстом. ||TCaption = string[255]; | ||(Pb) property Alignment: |Устанавливает правило выравнивания ||TAlignment; |текста — по правому, левому краю или по|| |центру клиентской области. ||(Pb) property AutoSize: Boolean; |В случае True происходит автоматическое|| |приведение размеров компонента к || |размерам текста и высоте шрифта. || | || | || |Продолжение табл.1 ||(Pb) property ShowAccelChar: |Показывает, отображается ли в TLabel ||Boolean; |акселератор (символ, перед которым || |стоит знак амперсанда — '&'). Если оно || |равно False, амперсанд никак не || |интерпретируется. В случае True || |акселератор выделяется в строке || |подчеркиванием и нажатие клавиш || |<Аlt>+<символ> приводит к передаче || |фокуса окну FocusControl (т.к. TLabel || |сам не является оконным компонентом). ||(Pb) property FocusControl: |Определяет оконный компонент, которому ||TWinControl; |посылаются сообщения о вводе || |акселератора. ||(Pb) property Transparent: |Прозрачность фона компонента. Если ||Boolean; |свойство установлено в True, то при || |перерисовке элемента управления не || |происходит закрашивание клиентской || |области. В противном случае — || |происходит закрашивание кистью bsSolid || |и цветом Color. ||(Pb) property WordMrap: Boolean; |Определяет возможность разрыва слов в || |случае, если длина выводимого текста || |превышает ширину компонента. |1.2.3. Компонент TPanelTPanel - управляющий элемент, похожий на TGroupBox, используется вдекоративных целях. Чтобы использовать TPanel, просто поместите его наформу и затем положите другие компоненты на него. Теперь при перемещенииTPanel будут передвигаться и эти компоненты. TPanel используется также длясоздания панели инструментов и окна статуса. Этот компонент доступен из модуля EXTCTRLS, и находится на страницеПалитры компонентов Standard. Этот компонент — является несущей конструкцией для размещения другихэлементов управления. В отличие от простой рамки (TBevel) панель самаявляется оконным элементом управления и родителем для всех размещенных наней компонентов. Часто ее используют для создания панелей инструментов,строк состояния и т. п. За внешнее оформление панели отвечают свойства: (Pb) property Bevel Inner: TPanelBevel; (Рb) property BevelOuter: TPanelBevel; TPanelBevel = (bvNone, bvLowered, bvRaised) ; (Pb) property BevelWidth: TBevelWidth; TBevelWidth = 1..Maxint; (Pb) property BorderWidth: TBorderWidth; TBorderWidth = 0..Maxint ; На границах панели размещаются две специальные окаймляющие рамки(bevels): Bevellnner и BevelOuter. При помощи комбинации белого и серогоцветов они имитируют трехмерность — приподнятость (bvRaised) или утоп-ленность (bvLowered). Обе рамки имеют ширину BevelWidth. Наружная —BevelOuter — расположена прямо по периметру панели, вторая — Bevellnner —внутри на расстоянии BorderWidth от нее. Обе могут быть невидимыми(bvNone), приподнятыми или утопленными. Комбинируя сочетания bvLowered/bvRaised, можно создать вокруг панели"ров" или "вал". Иллюзию трехмерности может подчеркнуть также стиль обрамлениякомпонента: (Pb) property BorderStyle: TBorderStyle; TBorderStyle = bsNone .. bsSingle; Значение bsSingle означает, что панель будет окаймлена черной линиейединичной толщины (по периметру, снаружи от обеих рамок). Выравнивание текста заголовка панели определяется при помощи свойства: (Pb) property Alignment: TAlignment; Свойство (Pb) property Locked: boolean; предназначено для определенияспособа взаимодействия панели с размещенными на ней объектами OLE. Если оноравно True, последние при активизации сервера OLE "по месту'" не могутзаместить панель. В обработчике события: (Pb) property OnResize: TNotifyEvent; можетбыть предусмотрена реакция пользователя на изменение размеров панели.1.2.4. Компонент TBitBtnTBitBtn - кнопка вроде TButton, однако на ней можно разместить картинку(glyph). TBitBtn имеет несколько предопределенных типов (bkClose, bkOK идр), при выборе которых кнопка принимает соответствующий вид. Кроме того,нажатие кнопки на модальном окне (Form2.ShowModal) приводит к закрытию окнас соответствующим модальным результатом (Form2.ModalResult). Этот компонент доступен из модуля BUTTONS, и находится на страницеПалитры компонентов Additional. Эта кнопка, будучи потомком TButton, может нести на себе пиктограмму иимеет рад дополнительных удобств в использовании. В Delphi уже определеныстандартные виды кнопок: (Pb) property Kind: TBitBtnKind; TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bklgnore, bkAll); Для каждой из них определены: передаваемый форме результат(ModalResult): BitBtnModalResults: array[TBitBtnKind] of TModalResult = (0, mrOk, mrCancel, 0, mrYes, mrNo, 0, mrAbort, mrRetry, mrlgnore, inrAll);а также название и картинки для разных состояний. Достаточно установитьзначение свойства Kind, и кнопка сразу приобретет нужный вид. Более того,некоторые из видов кнопок при нажатии сразу совершают определенныедействия. Так, bkHelp осуществляет инициализацию системы помощи со своим(или ближайшим ненулевым родительским) контекстом. Кнопка вида bkCloseзакрывает форму, которой она принадлежит, вызывая ее метод Close. Кнопка будет отнесена к виду bkCustom, если она: 1. назначена Default, но при этом не принадлежит множеству [bkOk, bkYes]; 2. назначена Cancel, но не принадлежит множеству [bkCancel, bkNo]; 3. у нее изменена пиктограмма; 4. модальный результат не соответствует определенному для этого вида кнопок. За внешний вид этой кнопки отвечают свойства, рассмотренные ниже.Стиль изображения кнопок в зависимости от операционной системы задаетсясвойством: (Pb) property Style: TButtonStyle; TButtonStyle = (bsAutoDetect, bsWin31, bsNew); Стиль bsNew соответствует Windows 95. В любом случае корректным будетприменение стиля bsAutoDetect, который сам распознает версию системы.Пиктограмма кнопки, которая вместе с текстом видна на ее поверхности,определяется свойством: (Pb) property Glyph: TBitmap; Для создания эффекта нажатия картинка должна немного изменяться взависимости от состояния; кроме того, отдельная картинка нужна длянеактивного состояния (когда нажатие не воспринимается). В свойстве Glyphдолжна быть одна битовая карта, но она может содержать картинки сразу длянескольких состояний кнопки (максимум четыре). Они интерпретируются каксоответствующие нормальному (отжатому), запрещенному (неактивному),нажатому и утопленному состояниям (последнее применяется только для кнопокTSpeedButton). Для этого картинки должны быть расположены подряд вплотнуюпо горизонтали. Например, при размере картинок 16х16 нужна объединеннаябитовая карта 64х16. Если каждая из картинок квадратная и ширина общейкартинки нацело делится на высоту, то при присвоении ее свойству Glyphсистема сможет распознать их и скорректировать количество, определяемоесвойством: (Pb) property NumGlyphs: TNumGlyphs ; TNumGlyphs = 1..4; При отрисовке в зависимости от состояния из большой битовой картыбудет использована нужная часть. Три свойства отвечают за расположение текста и картинки на поверхностикнопки: (Pb) property Layout: TButtonLayout; Способ выравнивания пиктограммы относительно краев кнопки. Может бытьодним из четырех: TButtonLayout = (biGlyphLeft, biGlyphRight, biGlyphTop, biGlyphBottom); Расстояние от соответствующего способу выравнивания края кнопки допиктограммы описывается свойством: (Pb) property Margin: Integer; Промежуток между пиктограммой и текстом равен: (Pb) property Spacing: Integer; Если свойства Margin, Spacing или оба не заданы (по умолчанию равны-1), значения этих промежутков выбираются системой. Кнопка также имеетметод Click и свойства Caption, ModalResult, Default и Cancel. СтатусDefault получают кнопки видов bkOk, bkYes, a Cancel — кнопки видовbkCancel, bkNo.1.2.5. Компонент TSpeedButtonTSpeedButton - кнопка для создания панели быстрого доступа к командам(SpeedBar). Пример - SpeedBar слева от Палитры Компонент в среде Delphi.Обычно на данную кнопку помещается только картинка (glyph). Этот компонент доступен из модуля BUTTONS, и находится на страницеПалитры компонентов Additional. Эта кнопка с изображением может иметь как зависимую, так и независимуюфиксацию. Она удобна для применения в составе панелей инструментов.Поведение этих кнопок во многом определяется свойством: (Pb) property Grouplndex: Integer; Если Grouplndex равен нулю, у кнопки вообще нет фиксации в нажатомсостоянии и она не зависит от остальных кнопок, принадлежащих тому жеродительскому элементу. Кнопки в группе (то есть с одинаковым ненулевымзначением Grouplndex) имеют зависимую фиксацию. Она также зависит отсвойства: (Pb) property AllowAlIUp: Boolean;которое описывает поведение кнопок в группе, а именно: могут ли все кнопкиодновременно быть отжаты. Если AllowAlIUp равно False (по умолчанию),нажатую кнопку в группе можно отпустить, лишь нажав другую. Если AllowAlIUpравно True, кнопку можно отпустить повторным нажатием. Если необходимо фиксировать одну кнопку TSpeedButton, ей нужноприсвоить уникальный групповой индекс, а AllowAlIUp установить в True. Поскольку в группе не могут одновременно находиться кнопки с различнымзначением этого свойства, при нажатии кнопки и изменении Grouplndexсвойство AllowAlIUp "рассылается" (присваивается) остальным кнопкам с темже значением Grouplndex. В группе не может быть нажато более одной кнопки.Определяет, нажата ли кнопка, свойство: (Pb) property Down: Boolean; Это свойство может изменяться как системой, так и программистом.Например, если при запуске программы необходимо, чтобы одна из кнопок ужебыла нажатой, ее свойство Down устанавливают в True. Текст кнопки определяет свойство Caption. Компонент имеет те жеправила и свойства рисования картинки, что и TBitBtn. Они описываютсясвойствами Glyph, NumGlyphs, Layout, Margin и Spacing. Для имитации щелчка предусмотрен метод Click. Двойной щелчок дляTSpeedButton возможен только на нажатой кнопке — иначе он интерпретируетсякак обычный. Описывается свойством: (Pb) property OnDblClick;1.2.6. Компонент TImageTImage - отображает графическое изображение на форме. Воспринимает форматыBMP, ICO, WMF. Если картинку подключить во время дизайна программы, то онаприкомпилируется к EXE файлу. Этот компонент доступен из модуля EXTCTRLS, и находится на страницеПалитры компонентов Additional. Этот компонент служит надстройкой над классом TPicture и замыкает всюиерархию графических объектов VCL. Он предназначен для показа на формеизображения: битовой карты (TBitmap), метафайла (TMetafile), значка(TIcon). Свойство (Pb) property Picture: TPicture; служит контейнером дляграфического объекта одного из перечисленных классов. В качестве канвы используется канва объекта Picture. Graphic — толькоесли поле Graphic ссылается на объект класса TBitmap: (Pb) property Canvas: TCanvas; Если это не так, то попытка обращения к свойству вызоветисключительную ситуацию EInvalidOperation, так как рисовать на метафайлеили значке нельзя. Следующие три свойства определяют, как именно Tpicture располагается врабочей области компонента: (Pb) property AutoSize: Boolean;— означает, что размеры компонента настраиваются по размерам содержащегосяв нем графического объекта. Устанавливать его в True нужно перед загрузкойизображения из файла или буфера обмена; (Pb) property Stretch: Boolean;— если это свойство установлено в True, то изображение "натягивается" нарабочую область, при необходимости уменьшая или увеличивая свои размеры.Если оно установлено в False, то играет роль следующее свойство; (Pb) property Center: Boolean;— если это свойство установлено в True, изображение центрируется в пределахрабочей области. В противном случае — располагается в ее верхнем левомуглу.1.2.7. Компонент TTimerTTimer - таймер, событие OnTimer периодически вызывается через промежутоквремени, указанный в свойстве Interval. Период времени может составлять от1 до 65535 мс. Этот компонент доступен из модуля EXTCTRLS, и находится на страницеПалитры компонентов System. Этот невизуальный компонент предназначен для уведомления программы обистечении определенных промежутков времени. Компонент инкапсулируетсистемный таймер Windows и работает через посылку сообщений WM_TIMER. Свойство (Pb) property Enabled: Boolean; включает/выключает таймер,влияя на генерацию им событий. Будучи установлен в Enabled, таймер начинаетгенерировать события OnTimer через интервал времени (Рb) property Interval: Word;который измеряется в миллисекундах. После каждого истечения такогоинтервала инициируется обработчик, связанный с событием: (Pb) property OnTimer: TNotifyEvent;При этом программист получает очередной квант времени. При активизации и деактивизации таймера или изменении интервала всистеме может не оказаться свободных таймеров. В этом случае генерируетсяисключительная ситуация EOutOfResources.1.2.8. Компонент TStatusBarTStatusBar – строка состояния. Предназначена для размещения разного родаслужебной информации в окнах редактирования, обычно располагается в нижнейчасти основной формы. Компонент может иметь несколько секций, а такжекнопку изменения размеров окна, в которое он помещен. С компонентомсвязывается объект класса TStatusPanel, который определяет панеликомпонента. Этот компонент находится на странице Палитры компонентов Win32.2. РАЗРАБОТКА ПРОГРАММЫ2.1. Постановка задачи Разработать игровую программу «Морской бой», которая включает игровуюпанель, состоящую из двух полей для человека и компьютера. На полерасставляются 10 кораблей разного класса. Четыре корабля размером в однуячейку, три корабля размером в две ячейки, два корабля размером в триячейки, и один корабля размером в четыре ячейки. Поочередно противникампредоставляется возможность выстрела по чужому полю, результаты которогоотображаются на нем. При попадании в корабль предоставляется возможностьдополнительного выстрела. Победа присуждается игроку, потопившему всекорабли противника. Справочная информация содержит правила игры, версию программы, иавтора работы.2.2. Алгоритм реализации работы2.2.1. Алгоритм реализации игровой программы Запуск программы осуществляется следующим образом: необходимо открытьпапку, содержащую данную игру, и найти исполняемый файл morboy.exe. На этомфайле следует выполнить двойной щелчок левой клавишей манипулятора мышь. Проект программы состоит из файла проекта, содержащего необходимыеконструкции для исполнения, и двух модулей Unit1 и Unit2 (6, 7, 8). Модуль Unit2 содержит форму AboutBox, и предназначен для вывода окна,содержащего информацию о программе и об авторе (рис.1). [pic] Рис.1. Информация о программе Модуль Unit1 является основным модулем проекта, содержащим всенеобходимые для работы программы процедуры. После запуска программы на экран выводится основная форма Form1(рис.2), на которой расположены следующие объекты: 1. Главное меню 2. Игровое поле компьютера 3. Игровое поле человека 4. Кнопки подтверждения / отмены хода 5. Строка состояния [pic] Рис.2. Вид программы после запуска Игра, т.е. работа программы, начинается с выбора в главном меню пункта«Игра», в котором содержится подпункт «Новая». После выбора этогоподпункта, или нажатия клавиши F2, происходит выполнение процедурыN11Click. Эта процедура предназначена для расстановки кораблей на игровыхполях случайным образом (Приложение 1). Первоначально на форму выводится сообщение «Ваш ход» (блок 2). Далеепеременным P и t1 присваиваются значения True, и инициализируется генераторслучайных чисел (блок 3). Затем организуется цикл с заданным количествомповторений по переменной U от 1 до 2 (блок 4). В этом цикле, в свою очередьорганизуются два вложенных цикла с заданным количеством повторений, вкоторых происходит обнуление элементов массива записи (блоки 5, 6 и 7).После этого выполняется операция присваивания m[u].k:=20 (блок 8). Это –общее количество ячеек, которое занимают все корабли одного игрового поля. Далее организуются два вложенных цикла, первый с параметром I от 4 до1 с шагом –1, второй с параметром j от 1 до 5-I с шагом 1 (блоки 9 и 10). Вэтих циклах выполняется расстановка кораблей случайным образом. Внутри этихциклов организуется еще один цикл типа «До» с условием окончания циклаt=True (блок 32). В теле цикла происходит операция присваивания t:=true(блок 11), и проверяется многовариантное условие, чему равно значениевыражения random(2), сгенерированное случайное число, нулю или единице.Если это выражение рано нулю (блок 12), будет происходить установка корабляпо горизонтали и будут выполнены следующие действия: генерируются случайнымобразом координаты X1 и Y1 (блок 13), организуется цикл с заданным числомповторений по переменной X (блок 14), в котором проверяется условиенеравенства нулю ячейки с координатами X,Y1 (блок 15), и если это так, топеременной t присваивается значение False (блок 16). И, в этом же цикле проверяется условие истинности переменной t. Еслипеременная t=True (блок 17), то происходит пропуск некоторых ячеек (блок18), и установка ячеек корабля (значение ячейки равно 2) циклически (блоки19 и 20). После этого опять происходит пропуск некоторых ячеек (значение ихравно 1) (блок 21). На этом цикл завершается (блок 14), и проверяетсяследующее значение выражения random(2). Если это выражение равно единице(блок 22), то происходит установка корабля по вертикали. Все выполняемыедействия этой ветки алгоритма аналогичны вышеописанным, с применениемциклов по переменной Y (блоки 23 - 31). После выполнения этих действий проверяется условие окончания цикла«До» (блок 32), и завершаются два вложенных цикла по переменным I и J(блоки 9 и 10). Далее, происходит визуальная расстановка кораблей на игровом полечеловека. Для этого организуются два вложенных цикла по переменным I и J созначениями от 1 до 10 (блоки 33 и 34). В циклах проверяется условиезаполнения ячейки поля клеткой корабля m[1].a[i,j]=2 (блок 35), и если этологическое выражение истинно, то переменной r присваивается название файла,содержащего картинку корабля (блок 37), иначе – пустую картинку (блок 36).Далее, с помощью двух процедур Case1 происходит прорисовка ячеек на игровомполе (блоки 38 и 39). Последние действия в этой процедуре – вывод на панель строки состояниязначений количества выстрелов и попаданий (блок 40), а также происходитприсваивание переменным следующих значений: tm1:=Time и new:=True. Процедура Case1, про которую было сказано выше, выполняет следующиедействия (Приложение 2): при обращении к определенной ячейки игрового полячеловека или компьютера происходит прорисовка ячейки специальной картинкой,в зависимости от значения переменной r. В процедуре происходитмножественный выбор, по номеру ячейки, и выполняется действие загрузкирастрового файла в компонент TSpeedButton (блоки 2 - 401). После того, как все корабли были расставлены на игровом поле,программа ожидает срабатывания нескольких событий: . щелчка левой клавишей манипулятора мышь по ячейки игрового поля компьютера; . выбора из пункта «Игра» главного меню подпункта «Выход»; . выбора из пункта «Помощь» главного меню подпункта «О программе»; . выбора из пункта «Помощь» главного меню подпункта «Правила игры» При описанном первым событии происходит обращение к процедуреSpeedButton101Click (Приложение 3). В теле процедуры сразу проверяетсяпеременная t1. Если t1 не равна значению True (блок 2), то процедуразавершает свою работу, иначе происходит присвоение переменной S имениобъекта игрового поля, по которому производится щелчок, из имени объектаудаляется подстрока «SpeedButton», оставшийся номер объекта преобразуется вчисло (блок 3). После этого проверяется условие, делится ли это число на 10с остатком (блок 4). Если это так, то переменной J присваивается значение I-90 (блок 6), иначе J=I-100 (блок 5). Далее, проверяется делимость числа Jна 10 без остатка (блок 7). Если это условие выполняется, то переменной Uприсваивается значение 10 (блок 9), иначе вычисляется остаток от деленияпеременной J на 10 (блок 8). Полученное значение переменной U проверяется сиспользованием многовариантного выбора, и в соответствии со значениемпеременной S присваивается одна из букв русского алфавита, от А до К (блоки10 - 29). Потом проверяется условие, был ли щелчок на данной ячейке (блок30), если щелчка не было, то осуществляется переход на положительную веткуалгоритма, в которой, во-первых, осуществляется вывод в ячейку картинки,показывающей сделанный ход (блок 31), во-вторых, происходит вывод надигровым полем человека кода произведенного хода (блок 32), и в-третьих,переменной t1 присваивается значение False, и кнопки подтверждения / отменыхода становятся доступными (блок 33). На этом процедура завершает своюработу (блок 34). При подтверждении сделанного хода, т.е. при щелчке на кнопке OK,происходит вызов процедуры BitBtn1Click (Приложение 4), которая производиттак называемый выстрел, и в соответствии с этим, отмечает необходимыеячейки игровых полей. После вызова процедуры происходит приращение переменной KL на единицу(блок 2), и проверяется ячейка игрового поля (блок 3). Если в ячейке естьклетка корабля, то выводится соответствующая картинка с помощью процедурыCase1 (блок 4), уменьшается счетчик количества клеток кораблей, исоответствующая клетка помечается как использованная (значение равно 3)(блок 5). Далее, происходит проверка количества «живых» клеток кораблей.Если это количество равно нулю (блок 6), то выводится сообщение «Победа!»(блок 7), переменным P и t1 присваивается значение False, кнопкиподтверждения / отмены хода становятся неактивными (блок 8), и процедуразавершает свою работу (блок 19). Если количество «живых» клеток кораблей не равно нулю (блок 6), товыводится сообщение «Попал!» (блок 9), и переменной P присваиваетсялогическое значение False (блок 10). При этом происходит объединение этойветки алгоритма с веткой «Нет» блока условия 3 (пустая клетка), в которойвыводится сообщение «Промах» (блок 11), соответствующая ячейка заполняетсянеобходимым изображением с помощью процедуры Case1 (блок 12), ячейкапомечается, как использованная (значение равно 3), и переменной Pприсваивается логическое значение True (блок 13). Далее, переменной t1 присваивается логическое значение True,вычисляется результативность S (блок 14). На панель 2 строки состояниявыводятся значения количества выстрелов, количества попаданий ирезультативность игрока (блок 15), кнопки подтверждения / отмены ходастановятся неактивными (блок 16), и проверяется значение переменной p (блок17). Если это значение равно True, то происходит вызов процедуры Komp (блок18), которая производит ход компьютера. Процедура Komp (Приложение 5) начинается с двух вложенных циклов типа«До», в которых вычисляются координаты выстрела случайным образом (блок 2).После этого проверяется условие завершения внутреннего цикла (блок 3).Далее происходит многовариантная проверка координаты по вертикали В1 от 1до 10, в результате которой переменной S присваивается определенноезначение, лежащее в промежутке от А до К (блоки 4 - 23). Выводится код хода компьютера над игровым полем (блок 24), исоответствующим образом заполняется ячейка игрового поля, переменной PKприсваивается необходимое логическое значение (блоки 25 - 29). Далее, происходит приращение количества выстрелов, вычисляетсярезультативность (S) (блок 30), и на панель 0 строки состояния выводятсязначения количества выстрелов, количества попаданий, и результативность(блок 31). Потом, проверяется условие завершения внешнего цикла «До» (блок 32), иесли условие выполняется, то процедура заканчивает свою работу (блок 33). При отмене сделанного пользователем хода, т.е. при щелчке на кнопкуNO, происходит вызов процедуры BitBtn2Click (Приложение 6). В этойпроцедуре очищается ячейка игрового поля с помощью процедуры Case1 (блок2), переменной t1 присваивается логическое значение True, и кнопкиподтверждения / отмены хода становятся неактивными (блок 3). В этом же приложении приведена процедура Timer1Timer (Приложение 6),которая основана на невизуальном компоненте Timer, и рассчитывает времяигры. Здесь, если выполняется условие new=True (блок 2), то на панель 1строки состояния выводится значение времени игры (блок 3). Все процедуры находится в модуле Unit1, текст которого приведен вприложении 7.2.2.2. Реализация справочной информации Справочная информация (правила игры) реализована с помощью программыHelp Development Studio. Эта программа позволяет создать файл справочнойинформации для Windows, используя текст формата Rich Edit Text. В процессеработы этой программы создается файл проекта справки *.hmp, которыйвпоследствии может быть откомпилирован в файл справки (*.hlp). В данной курсовой работе был создан файл проекта справки morboy.hmp,который был откомпилирован с помощью программы Help Development Studio,Microsoft Help WorkShop, входящей в состав Borland Delphi 6.0, икомпилятора HcRtf.exe в файл morboy.hlp (рис.6).2.3. Описание пользовательского интерфейса После запуска программы на экран выводится основное окно программы(рис.2). Необходимо вызвать главное меню и выбрать из пункта «Игра»подпункт «Новая» (рис.3). [pic] Рис.3. Программа с открытым главным меню После выбора происходит расстановка кораблей, и игра начинается(рис.4). [pic] Рис.4. Игра Игроку предоставляется право первого хода. Ход осуществляется путемщелчка левой кнопкой мыши на игровом поле. После щелчка по клетке поля наней появляется изображение мины (рис.4), и игроку предоставляется правоподтвердить или отменить ход с помощью кнопок OK и No. После подтвержденияв ячейке появляется изображение результата хода, а в нижней левой частиокна появляется сообщение о результате: «Попал» (рис.4) или «Промах!». Еслибыл произведен результативный выстрел, то игроку дается право внеочередногохода. В противном случае право хода передается компьютеру. Победаприсуждается за все потопленные корабли, и на этом игра заканчивается(рис.5). Горячие клавиши, применяемые при работе программы: 1. Alt+И – Вызов пункта «Игра» главного меню 2. F2 – Новая игра 3. F10 – Выход в систему 4. Alt+N – Отмена хода [pic] Рис.5. Победа в игре Если в процессе игры пользователю необходимо обратиться к правилам, тос помощью пункта «Помощь» главного меню можно вызвать подпункт «Правилаигры». В результате появится окно справки, показанное на рис.6. [pic] Рис.6. Окно справки ЗАКЛЮЧЕНИЕ В результате выполнения данной курсовой работы был получен игровойпрограммный продукт, названный «Морской бой». Было проведено исследованиекомпонентов программной среды Borland Delphi 6.0, которые использовалисьпри создании игры. В результате исследования были выявлены следующие недостаткиполученного программного продукта: 1. Низкий исскуственный интеллект, т.е. ход компьютера осуществляется случайным образом, что делает маловероятным победу компьютера; 2. При полном потоплении корабля это никак не отражается; 3. Невозможность возврата на несколько ходов назад; 4. Работоспособность приложения только в среде Windows; 5. Невозможность ручной расстановки кораблей игрока. Однако, помимо недостатков, есть и достоинства у этого программногопродукта: 1. Есть возможность отменить неверно сделанный ход с помощью кнопок подтверждения / отмены; 2. Создана интерактивная справка с правилами игры; 3. Программный продукт малотребователен к системным ресурсам компьютера. Минимальная конфигурация: процессор – не ниже Pentium, оперативная память – не ниже 16 Mb, операционная система – Windows 95 / 98/ Me / NT / 2000 / XP. В результате учета всех сделанных выше замечаний возможно улучшениесозданного программного продукта, на которое потребуется минимум измененийисходного кода программы. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 1. Журнал Компьютер Пресс, N1, 1996 2. Дворак Дж. 350 игр для IBM PC. –С-Пб.:Пергамент, 1994, -318с. 3. Фаронов В.В. Delphi 4. Учебный курс. –М.: Нолидж, 1999. -447с. 4. Дарахвелидзе П.Г., Марков Е.П. Delphi – среда визуального программирования. –СПб.:BHV-Санкт-Петербург, 1996. -352с. 5. Епанешников А., Епанешников В. Программирование в среде Delphi 2.0. Учебное пособие. В 4-х частях. Ч.1. Описание среды. –М.:ДИАЛОГ-МИФИ, 1997. -235с. 6. Епанешников А., Епанешников В. Программирование в среде Delphi 2.0. Учебное пособие. В 4-х частях. Ч.2. Язык Object Pascal 9.0. –М.:ДИАЛОГ- МИФИ, 1997. -319с. 7. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. –М.:Нолидж, 1997. -616с. 8. Фаронов В.В. Турбо Паскаль 7.0. Практика программирования. Учебное пособие. –М.:Нолидж, 1997. -432с.-----------------------[pic][pic][pic][pic][pic][pic][pic]




Нажми чтобы узнать.

Похожие:

Разработка игровой программы Морской бой iconКроссворды «морской бой»
Такой квадрат известен вам по игре «морской бой». Ответы записывайте сверху вниз. Ключевое слово записывается по горизонтали. Начало...
Разработка игровой программы Морской бой iconДокументи
1. /файл-сценарий/Морской бой реализован (фотографии).docx
2. /файл-сценарий/интеллектуальная...

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

Разработка игровой программы Морской бой iconВице-президент amosup-ptgwo-itf
Программы морского обучения и подготовки Морской академии стран Азии и Тихого океана: непрерывное обеспечение мировой морской и рыбохозяйственной...
Разработка игровой программы Морской бой icon2. Опишите Полтавский бой, опираясь на схему
Укажите дату событий:, сражение у Гренгама, сражение под Нарвой, бой у Лесной, Прутский поход, Гангутский бой, сражение у Нарвы
Разработка игровой программы Морской бой iconИнтеллектуальная игра «морской бой»
Игровое поле – квадрат, состоящий из 10 строк, обозначенных числами от 1 до 10, и 10 столбцов, обозначенных буквами от а до К. Координаты...
Разработка игровой программы Морской бой icon«Морской бой» Интеллектуальная игра среди учащихся 9-х классов Оборудование
Оборудование: лист ватмана с полем для игры. Поле представляет собой квадрат 8х8, клетки зарыты листочками бумаги. На 16 клетках...
Разработка игровой программы Морской бой iconТема: я играю целый день, мне играть совсем не лень
Цель: повысить знания родителей по руководству детской игровой деятельностью, привлечь к совместной игровой деятельности, обучать...
Разработка игровой программы Морской бой iconРазработка игровой программы: «В стране Лингвистике» Цель – воспитание интереса к русскому языку, расширение кругозора учащихся
Наша встреча посвящена русскому языку, страна Лингвистика приоткроет нам страницы истории нашего языка, покажет его богатство и красоту,...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©rushkolnik.ru 2000-2015
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы