Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
На тему: «разработка игрового оконного приложения «морской бой»Стр 1 из 8Следующая ⇒
Курсовой проект На тему: «Разработка игрового оконного приложения «Морской бой» Выполнил: студент 4 курса факультета информатики очной формы обучения Круглов В.Н. Научный руководитель: к.т.н., доцент кафедры информатики Аносов Ю.В. _________________
Орехово-Зуево 2015 Оглавление
ВВЕДЕНИЕ.. 3 ЗАДАНИЕ НА ПРОЕКТИРОВАНИЕ И РАЗРАБОТКУ.. 6 ГЛАВА 1. Теоретические основы разработки игровых приложений. 7 1.1 Классификация игрового программного обеспечения. 7 1.2 Развивающие игры.. 12 1.3 Использование инструментальной среды «Delphi» при проектировании и разработке игровых программных приложений. 14 ГЛАВА 2. Проектирование и разработка игрового оконного приложения «Морской бой». 20 2.1 Определение необходимой функциональности разрабатываемого приложения и проектирование его структуры.. 20 2.2 Проектирование и разработка пользовательского интерфейса и оболочки приложения. 20 2.3 Разработка алгоритмов, реализующих логику поведения компьютерного интеллекта, отвечающего за действия виртуального игрока. 23 2.4. Тестирование разработанного программного продукта. 26 ЗАКЛЮЧЕНИЕ.. 27 СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ... 29 ПРИЛОЖЕНИЯ.. 31 Приложение 1. Руководство пользователя. 31 Приложение 2. Исходный код главного модуля программы «Project1.dpr» 32 Приложение 3. Исходный код модуля первой формы «Unit1.pas». 32 Приложение 4. Исходный код модуля второй формы «Unit2.pas». 49
ВВЕДЕНИЕ Игровое программное обеспечение или «компьютерные игры» – это средства для обеспечения одного из видов игровой деятельности человека, основанные на использовании мультимедийных возможностей современной компьютерной техники и технологиях создания виртуальной (альтернативной) реальности. В целом – компьютерные игры сходны с так называемыми традиционными играми, однако им присущи собственные, принципиально отличающие их от традиционных игр, особенности. Отдельно следует отметить развивающие компьютерные игры. Развивающие компьютерные игры – это компьютерные программы, служащие для организации игрового процесса, главной целью которого является развитие личности ребенка. Т.е. понятие развивающих игр напрямую связано, с детским, обычно дошкольным и младшим школьным периодами жизни человека.
Развитие представляет собой процесс формирования в личности, новых психических качеств (способностей, интересов, потребностей, воли, эмоций) или их нового уровня. При этом дети, играющие в развивающие компьютерные игры, развивают все эти качества незаметно для самих себя и, кроме того, тренируют мышление, изобретательность, воображение. В связи с этим, разработка новых развивающих компьютерных игр современного уровня той или иной направленности, ориентированных на детей дошкольного и младшего школьного возраста, – представляется весьма актуальной. В качестве объекта исследования в данном курсовом проекте выступают технологии проектирования и разработки интерактивных мультимедийных игровых программных интерфейсов и игровых логик с элементами искусственного интеллекта. Предметом исследования является изучение возможностей инструментальной среды «Delphi» при проектировании и разработке игровых программных приложений. Целью данной работы является проектирование, и разработка игрового программного приложения (Развивающая игра «Морской бой»), предназначенного для стимуляции и развития у детей дошкольного и младшего школьного возраста таких навыков, как: логика мышления, воображение; планирование собственных действий. Для достижения поставленной в работе цели необходимо решить следующие задачи: 1. рассмотреть виды и классификацию компьютерных игр и особенности их интерфейсов; 2. изучить возможности инструментальной среды «Delphi» при проектировании и разработке игровых программных приложений; 3. спроектировать и реализовать развивающее игровое программное приложение (Развивающая игра «Морской бой»), обладающее развитым мультимедийным интерфейсом и встроенной логикой; 4. провести тестирование разработанного приложения на его соответствие поставленной задаче, работоспособности, устойчивости и совместимости с различными операционными системами. Для осуществления разработки была выбрана инструментальная среда разработки Delphi 2006 Explorer. Указанная среда была выбрана, по тому, что обладает широким спектром возможностей, позволяет разрабатывать программные приложения современного уровня и является бесплатной для использования в учебных целях и при разработке некоммерческих приложений.
Практическая значимость данного курсового проекта состоит в том, что разработанное приложение: Ø полностью соответствует поставленной цели; Ø отвечает всем необходимым требованиям; Ø реализует все заявленные функции; Ø стимулирует развитие у детей дошкольного и младшего школьного возраста логику мышления, воображение, способность планирования собственных действий; Ø может быть использовано в качестве базы программного кода при разработке более сложных программных приложений, использующих различные мультимедийные данные; Ø представляет собой готовый шаблон для разработки приложений, управляемых событиями с элементами автоматического принятия решений на основе встроенной логики. Кроме того, разработанное приложение является полноценной компьютерной игрой и может быть использовано по своему прямому назначению. Структура работы. Работа состоит из введения, задания на разработку, двух глав, заключения, списка использованной в процессе работы литературы и приложений. Во введении обосновывается актуальность выбранной темы, формулируется цель работы, определяются задачи и практическая значимость работы. В задании на разработку подробно излагаются общие положения задания и требования к функциональности, пользовательскому интерфейсу и совместимости. Первая глава посвящена изучению классификации игровых программных приложений (компьютерных игр), особенностям развивающих игр, обзору игровых приложений, ориентированных на развитие логики мышления у детей дошкольного и младшего школьного возраста, а также изучению возможностей инструментальной среды «Delphi» при проектировании и разработке подобных программных приложений. Вторая глава целиком посвящена проектированию и разработке развивающего игрового программного приложения (Развивающая игра «Морской бой»). В этой главе осуществляется: Ø определение структуры разрабатываемого приложения; Ø определение необходимой функциональности, проектирование и разработка пользовательского интерфейса и оболочки приложения; Ø разработка алгоритмов, реализующих логику поведения компьютерного интеллекта, отвечающего за действия виртуального игрока; Ø приводятся результаты тестирования разработанного продукта. В заключении проводится анализ разработанного приложения на предмет соответствия его поставленной задаче. Список использованной литературы содержит 23 печатных источника. Объем основной части работы (введение, задание на проектирование и разработку, две главы и заключение) составляет 26 страниц. Результатом работы является действующее развивающее игровое программное приложение (Развивающая игра «Морской бой»), совместимое с операционными системами линейки «Windows». Разработанное приложение в полной мере соответствует заявленным требованиям и готово к использованию. ЗАДАНИЕ НА ПРОЕКТИРОВАНИЕ И РАЗРАБОТКУ Общие положения задания и требования к функциональности
В ходе работы на данным курсовым проектом необходимо спроектировать и разработать развивающее игровое программное приложение (Развивающую игру «Морской бой»). Приложение должно содержать следующий набор функций: Ø автоматическую организацию игрового пространства и его визуализацию с использованием мультимедиа данных; Ø динамическое обновление игрового пространства в процессе игры; Ø автоматическую расстановку кораблей виртуального противника; Ø удобный редактор для расстановки кораблей игрока; Ø встроенную логику поведения виртуального противника; Ø сведения о программе; Ø систему помощи. Требования к интерфейсу приложения Исходя из специфики задачи пользовательский интерфейс разрабатываемого приложения должен быть предельно простым, прозрачным, интуитивно понятным, но, в то же время, ярким, красочным, использующим мультимедийные возможности компьютера (загрузку и отображение изображений, звуковое сопровождение, и т.д. Выполнение всех действий пользователя должно бить организовано максимально удобным для него способом. Требования к совместимости с операционными системами Разрабатываемое приложение должно быть ориентировано на операционные системы линейки «Windows». Требования к совместимости с аппаратным обеспечением Приложение должно обеспечивать стабильную, устойчивую работу на любой аппаратной базе, рекомендованной для перечисленных версий операционных систем.
Развивающие игры Развивающие компьютерные игры – это компьютерные программы, служащие для организации игрового процесса, главной целью которого является развитие личности ребенка. Т.е. понятие развивающих игр напрямую связано, с детским, обычно дошкольным или младшим школьным периодами жизни человека. При этом дети, играющие в развивающие компьютерные игры, развивают все эти качества незаметно для самих себя и, кроме того, тренируют мышление, изобретательность, воображение. В основе развивающих игр чаще всего находится некоторая задача, которая содержит определенную познавательную трудность, т.е. ориентирована на перспективный уровень умений. Подбирая дошкольнику такие игры, стоит учитывать, что условие поставленной в игре задачи должно соответствовать уровню развития ребенка, содержание игры должно быть ему понятно и доступно, а решение задачи ориентировано на «ближайший уровень развития». Только при таких условиях компьютерная игра будет стимулировать общее развитие дошкольника.
Типы, характер, содержание и оформление развивающих игр определяются конкретными воспитательными задачами применительно к возрасту детей с учётом их развития и интересов. В настоящее время уже существует огромное количество разнообразных развивающих компьютерных игр нескольких категорий: · конструкторские программы, в процессе которых детям надо либо сложить из разных частей фигуру определенной формы, либо, наоборот, разбить имеющуюся фигуру на заданные части. Эти программы развивают не только восприятие и координацию, но и образное мышление детей, а также усидчивость, усердие, терпение. Например, паззлы, тетрис, сложи узор. · «конструкторы сказок», совмещающие возможности текстового и графического редакторов для формирования и воспроизведения иллюстраций. В таких программах можно «сыграть» сказку на компьютере, а можно распечатать иллюстрации, вырезать и создать настольный театр. Такой вариант игр подходит для групповой работы и способствует развитию воображения, восприятия, речевых навыков, коммуникабельности, положительного эмоционального настроя и т.д. · программы, направленные на развитие зрительно-моторной координации ориентации ребенка в пространстве. Это различные лабиринты, по которым необходимо протащить предмет или игры, задачей которых является быстро поймать фигуру. · головоломки или игры, на развитие логического мышления. · игры на развитие внимания и памяти. Это, например, игры на сравнение картинок (найди отличия, найди пару, найди тень), игры на поиск спрятанных предметов. При использовании подобных игр происходит развитие не только внимания и памяти, но и усидчивость и терпение. Развивающие компьютерные игры могут иметь и просто творческий характер и не иметь конкретной задачи. Целью таких игр может быть развитие цветового восприятия, слухового опыта, побуждение познавательной активности, становление образно-символического мышления и т.п. К таким играм можно отнести различные графические редакторы, «раскраски», музыкальные игры, и т.п. Следует отметить, что, не смотря на то, что основной целю развивающих компьютерных игр ориентирована на общее развитие дошкольников, в них могут содержаться и обучающие элементы. Т.е. такие игры могут иметь ряд дополнительных целей, направленных на усвоение детьми определенных знаний и умений. В частности, играя в развивающие компьютерные игры, дети параллельно осваивают компьютер, учат цвета, формы, порядковый счет и т.д. Компонент TMainMenu TMainMenu позволяет поместить влюбое из окон (экранных форм) программы главное меню. При помещении 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). Компонент TLabel TLabel служит для отображения текста на экране. Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойство Font в Инспекторе Объектов. Видно, что это легко сделать и во время выполнения программы, написав всего одну строчку кода. Этот компонент доступен из модуля STDCTRLS, и находится на странице Палитры компонентов Standard. Компонент представляет собой статический текст. С помощью этого компонента на рабочей поверхности формы можно отобразить информацию, сделать пояснения и показать названия других компонентов. Но он имеет и другую важную функцию — если в составе текста TLabel есть символы-акселераторы, информация об их нажатии может передаваться от TLabel другому элементу управления. Свойства компонента приведены в табл.1: Таблица 1 Свойства компонента TLabel
Компонент TPanel TPanel – управляющий компонент, похожий на 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; Компонент TImage TImage - отображает графическое изображение на форме. Воспринимает форматы 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, изображение центрируется в пределах рабочей области. В противном случае — располагается в ее верхнем левом углу.
Планирование и нанесение ударов виртуальным игроком Данная функция программы реализована при помощи процедуры vistrel. Выстрел производится при нажатии на одну из клеток поля компьютера. Если ячейка имеет значение «0» (пустая клетка) то ячейке присваивается значение «3», ячейка имеет значение «2» то ячейке присваивается значение «4». Затем происходит прорисовка поля компьютера. Клетка, которой соответствует ячейка со значением «3» рисуется маленький квадрат, клетка которой соответствует ячейка со значением «4» проверяется ранен или убит корабль если убит, то рисуется красный квадрат, если ранен, то рисуется серый квадрат перечеркнутый красным крестом. После происходит проверка выиграл ли игрок или нет, для этого матрица компьютера сканируется и если не находится ни одной ячейки со значением «2», то выходит сообщение: – «Поздравляю! Вы победили.» Если же находится то проверяется если игрок опал в ячейку со значением «2» то ему предоставляется ещё один выстрел, и т. д. пока игрок не попадет в ячейку со значением «0». Тогда наступает очередь хода компьютера. Компьютер выбирает произвольную клетку из поля игрока и если её значение равно «0», то значение становится равным «3», если значение равно «2» от значение клетки становится равным «4». Затем происходит прорисовка поля компьютера. Клетка, которой соответствует ячейка со значением «3» рисуется маленький квадрат, клетка которой соответствует ячейка со значением «4» проверяется ранен или убит корабль если убит, то рисуется красный квадрат, если ранен, то рисуется серый квадрат перечеркнутый красным крестом. Компьютер стреляет до тех пор, пока не попадет в клетку со значением «0». После происходит проверка проиграл ли игрок или нет, для этого матрица игрока сканируется и если не находится ни одной ячейки со значением «2» то выходит сообщение: – «Вы проиграли. Попробуйте ещё раз!» ЗАКЛЮЧЕНИЕ Целью данного курсового проекта являлось проектирование и разработка игрового программного приложения (Развивающая игра «Морской бой»), предназначенного для стимуляции и развития у детей дошкольного и младшего школьного возраста таких навыков, как: логика мышления, воображение; планирование собственных действий. В ходе проделанной работы: Ø рассмотрены виды и классификация компьютерных игр и особенности их интерфейсов; Ø изучены возможности инструментальной среды «Delphi» при проектировании и разработке игровых программных приложений; Ø разработаны алгоритмы, реализующие логику поведения компьютерного интеллекта, отвечающего за действия виртуального игрока; Ø спроектировано и реализовано развивающее игровое программное приложение (Развивающая игра «Морской бой»), обладающее развитым мультимедийным интерфейсом и встроенной логикой; Ø проведено тестирование разработанного приложения на его соответствие поставленной задаче, работоспособность, устойчивость и совместимость с различными операционными системами. Проектирование и разработка были выполнены в инструментальной среде «Delphi 2006 Explorer».Данный выбор был детально обоснован. Проведённое финальное тестирование показало, что разработанное приложение: v полностью соответствует поставленной цели; v отвечает всем необходимым требованиям; v реализует все заявленные функции; v совместимо с большинством операционных систем линейки «Windows»; v нетребовательно к аппаратным ресурсам компьютера (работа возможна даже на компьютерах модели Pentium-3 с частотой 400 МГц.); v обладает простым, наглядным, интуитивно-понятным интерфейсом; v стимулирует развитие у детей дошкольного и младшего школьного возраста логику мышления, воображение, способность планирования собственных действий. Дополнительно можно отметить, что разработанное приложение: Ø может быть использовано в качестве базы программного кода при разработке более сложных программных приложений, использующих различные мультимедийные данные. Ø представляет собой готовый шаблон для разработки приложений, управляемых событиями с элементами автоматического принятия решений на основе встроенной логики. Кроме того, разработанное приложение является полноценной компьютерной игрой и может быть использовано по своему прямому назначению. В ходе работы все задачи решены, поставленная цель достигнута.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ Международные стандарты
Стандарты РФ в соответствии со стандартами ISO
Стандарты «Единой Системы Программной Документации»:
По разработке информационных систем и программированию
ПРИЛОЖЕНИЯ Приложение 1. Руководство пользователя Запуск приложения. Приложение полностью готово к использованию и не требует никаких предварительных настроек. Для запуска программы достаточно запустить исполняемый файл: «Project1.exe» Расстановка кораблей. В начале игры пользователю необходимо расположить на своём игровом поле (левое поле) собственные корабли. При этом в правом игровом поле (поле виртуального противника) выдаётся соответствующая подсказка. Расстановка кораблей осуществляется нажатием левой кнопки «Мыши» и сопровождается характерным звуковым сигналом. Контроль положения кораблей пользователя выполняется автоматически, что не позволит пользователю расположить их в положениях, запрещённых правилами игры. После того, как все корабли игрока расставлены приложение автоматически переходит в состояние «Игра» Игра. При входе в режим «Игра», подсказка в правом поле (поле виртуального противника) исчезает, а само поле превращается в координатную сетку поля боя. Нанесение ударов осуществляется пользователем нажатиями левой кнопки «мыши» в пределах квадратов координатной сетки поля виртуального противника. Каждый выстрел сопровождается соответствующим звуковым фрагментом. В случае промаха соответствующая клетка поля боя помечается точкой. В случае попадания – в клетке отображается часть пораженного корабля виртуального противника. Завершение игры. Игра завершается в четырёх случаях: 1. Пользователь выиграл. В этом случае выдаётся соответствующее сообщение и проигрывается победная музыка. 2. Пользователь проиграл. В этом случае также выдаётся соответствующее сообщение и проигрывается музыка поражения. 3. Пользователь может прервать игру и переиграть её заново нажав пункт меню «Новая игра». 4. Пользователь может просто закрыть приложение нажав стандартную кнопку закрытия окна.
Приложение 2. Исходный код главного модуля программы «Project1.dpr» program Project1; Uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} // Основные Ресурсы {$R Dop_resources.RES} // Дополнительные Ресурсы (Звуки) Begin Application.Initialize; //Application.HelpFile:= 'F:\Информатика\Курсовая\Delphi\работа\исодник программы\morb.HLP'; Application.HelpFile:= 'morb.HLP'; Application.Title:= 'Морской бой'; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; End.
Приложение 3. Исходный код модуля первой формы «Unit1.pas»
unit Unit1; Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Menus, XPMan, Mmsystem; Type TForm1 = class(TForm) Panel1: TPanel; Image1: TImage; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; Label25: TLabel; Panel2: TPanel; Image2: TImage; Label13: TLabel; Label14: TLabel; Label15: TLabel; Label16: TLabel; Label17: TLabel; Label18: TLabel; Label19: TLabel; Label20: TLabel; Label21: TLabel; Label22: TLabel; Label23: TLabel; Label26: TLabel; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N6: TMenuItem; N5: TMenuItem; Label12: TLabel; Label24: TLabel; Label27: TLabel; Label28: TLabel; Label29: TLabel; procedure FormCreate(Sender: TObject); procedure rastkor(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure nash(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure N2Click(Sender: TObject); procedure vistrel(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure N3Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N6Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Var Form1: TForm1; i, j, g, x 1, y 1, k 11, k 21, k 33, k 32, k 31, m 3, m 2, m 1, //кол-во 3х 2х 1х кораблей m, n, z: integer; rot, //ротация кораблей riad, rnd, //для того что бы рядом не ставились,нужна для рандомирования win, lose, //проверка на победу или поражение bum, //проверка выстрела компьютера kon, //проверка конца игры cokil: boolean; //попал ли комрьютер b1,b2:Array[1..14,1..14] of integer; Implementation uses Unit2; {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); Begin PlaySound('START_WAV', HInstance, SND_RESOURCE or SND_ASYNC or SND_NOWAIT); rot:= false; //заполнение переменных kon:= false; k11:=3; k33:=2; k32:=5; k31:=9; m3:=0; m2:=0; m1:=0; label13.Height:=0; label14.Height:=0; label15.Height:=0; label16.Height:=0; label17.Height:=0; label18.Height:=0; label19.Height:=0; label20.Height:=0; label21.Height:=0; label22.Height:=0; label23.Height:=0; label26.Height:=0; label12.Caption:='Расставьте корабли'; For i:=1 to 10 do //рисует сетку поля игрока for j:=1 to 10 do begin b1[i,j]:=0; image1.Canvas.Rectangle(20*i-20,20*j-20,20*i,20*j); end; randomize; m:=random(10)+1; n:=random(10)+1; z:=(random (100) mod 2); //расстановка клораблей компьютера //четырехпалубный Case n of 1..7: case m of 1..7: for i:=0 to 3 do if z=0 then b2[m+i,n]:=2 else b2[m,n+i]:=2; 8..10: for i:=0 to 3 do if z=0 then b2[m-i,n]:=2 else b2[m,n+i]:=2; end; 8..10: case m of 1..7: for i:=0 to 3 do if z=0 then b2[m+i,n]:=2 else b2[m,n-i]:=2; 8..10: for i:=0 to 3 do if z=0 then b2[m-i,n]:=2 else b2[m,n-i]:=2; end; end; //трехпалубные while m3<2 do begin m:=random(10)+1; n:=random(10)+1; z:=(random(100) mod 2); Case n of 1..7: case m of 1..7: case z of 0: if (b2[m,n]<>2) and (b2[m-1,n-1]<>2) and (b2[m-1,n]<>2) and (b2[m-1,n+1]<>2) and (b2[m,n-1]<>2)and (b2[m+1,n+1]<>2)and (b2[m+1,n]<>2) and (b2[m+1,n-1]<>2) and (b2[m,n+1]<>2) and (b2[m+1,n+2]<>2) and (b2[m-1,n+2]<>2) and (b2[m,n+2]<>2) and (b2[m+1,n+3]<>2) and (b2[m-1,n+3]<>2) and (b2[m,n+3]<>2) and (b2[m,n+3]<>2) then begin for i:=0 to 2 do b2[m,n+i]:=2; m3:=m3+1 end; 1: if (b2[m,n]<>2) and (b2[m+1,n+1]<>2) and (b2[m,n+1]<>2) and (b2[m-1,n+1]<>2) and (b2[m-1,n]<>2)and (b2[m-1,n-1]<>
|
|||||||||||||||||||||||
Последнее изменение этой страницы: 2021-05-12; просмотров: 62; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.115.195 (0.281 с.) |