Введение
1. Теоретическая часть
1.1 GUI интерфейс
1.2 Понятие и основные признаки игрового приложения
1.3 Понятие MDI приложения
2. Обоснование выбора среды разработки
3. Практическая часть
3.1 Проектирование GUI интерфейса приложения
3.2 Создание главного окна программы
3.3 Создание игрового окна программы
3.4 Тестирование приложения
Заключение
Список использованных источников
Приложение А
ВВЕДЕНИЕ
В данной курсовой работе речь пойдет о создании клиент-серверного приложения для игры «Морской бой».
«Морской бой» - традиционная настольная игра, в которую все мы любим играть с детства. Расчертить тетрадный лист, расставив в периметре корабли флота – любимое занятие на переменке или скучном уроке. Теперь эта забава доступна, чтобы играть и в новом качестве – на компьютере. Расставив на поле боя корабли разного размера, стреляйте по полю врага, стараясь угадать координаты, по которым находится корабль противника. Кто первый уничтожит все корабли противника - тот и победитель в этом морском бою!
Игра «морской бой» достаточно хорошо известна и популярна. Практически каждый школьник в тот или иной период своей жизни играл в эту игру. В последние годы в связи с появлением компьютеров и новых обучающих и развивающих программ вновь возрос интерес к ней.
Некоторые основные правила классического варианта игры. Первый игрок, игрок А, расставляет корабли на квадратном игровом поле из n клеток (обычно это поле клеток). Корабли делятся на классы: одноклеточные, двухклеточные, трехклеточные и четырехклеточные. Игрок В на своем поле расставляет свои корабли. Заметим, что корабли не должны касаться друг друга. Игра состоит в том, что игроки по очереди называют координаты клеток, в которых, как они предполагают, расположены корабли противника, то есть как бы производят выстрел по выбранной клетке. О попадании или промахе игроку сообщается после выстрела. Игра продолжается до тех пор, пока у одного из игроков не будут уничтожены все корабли.
На первый взгляд, эта игра носит чисто вероятностный характер, так как игроки ведут обстрел, не зная расположения кораблей противника. Но, приобретя некоторый опыт игры, можно заметить, что существуют стратегии расстановки кораблей, которые уменьшают вероятность попадания в последний одноклеточный корабль. Например, можно расположить весь флот таким образом, чтобы он занимал минимальное место на игровом поле, а один или два корабля ставят на оставшемся пространстве.
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1.1 GUI интерфейс
Графический интерфейс пользователя (ГИП), графический пользовательский интерфейс (ГПИ) (англ. graphical user interface, GUI) — разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графических изображений.
В отличие от интерфейса командной строки, в GUI пользователь имеет произвольный доступ (с помощью устройств ввода — клавиатуры, мыши, джойстика и т. п.) ко всем видимым экранным объектам (элементам интерфейса) и осуществляет непосредственное манипулирование ими. Чаще всего элементы интерфейса в GUI реализованы на основе метафор и отображают их назначение и свойства, что облегчает понимание и освоение программ неподготовленными пользователями.
Графический интерфейс пользователя является частью пользовательского интерфейса и определяет взаимодействие с пользователем на уровне визуализированной информации.
В современном мире миллиарды вычислительных устройств. Еще больше программ для них, и у каждого своего интерфейса, являющийся «рычагами» взаимодействия между пользователем и машинным кодом. Не удивительно, что чем лучше интерфейс, тем эффективнее взаимодействие.
Рассмотрим наиболее популярные в настоящий момент способы построения интерфейсов клиентских приложений на языке C++, как наиболее используемом для разработки ПО, для ОС Microsoft Windows (MS Windows) и ОС Linux. Главным средством разработки ПО для MS Windows является MS Visual Studio [1]. Эта интегрированная среда разработки (IDE) позволяет разрабатывать ПО на разных языках программирования, но основными языками, конечно, являются C++ и C#. Для разработки интерфейса приложения имеются два основных средства — Windows Forms (WinForms) и Windows Presentation Foundation (WPF). Большая часть существующих приложений для MS Windows разработана с использованием WinForms, однако с появлением более современных версий ОС (MS Windows 7, 8), система WPF становится более популярной. Кроме того, последние версии MS Visual Studio позволяют использовать язык разметки HTML5 для построения интерфейсов, близких по стилю к нативным веб-приложениям.
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1 Проектирование GUI интерфейса приложения
В проекте необходимо реализовать клиент-серверное приложение с отдельной клиентской и серверной частями.
В клиентской части необходимо создать визуальный пользовательский интерфейс, реализовать обмен сообщениями с севером, разработать основные функции игры создать два поля 10х10, на которых размещаются по 10 кораблей разного размера (один – размера четыре, два – размера три, три – размера два и четыре – размера один). Корабли могут располагаться горизонтально и вертикально. Два корабля не могут находиться в соседних полях. Каждый игрок видит только свои корабли и обстрелянные поля противника. Стрелять разрешается только по тем полям, по которым еще не было выстрела. Игрок стреляет до первого промаха, далее ход переходит к противнику. Как только кто-то из игроков убьёт все корабли противника, он выигрывает.
В серверной части необходимо реализовать возможность подключения нескольких клиентов, обмен сообщениями с клиентами.
Согласно принципам скрытия информации, обычно текст модуля разделяется на заголовочный файл интерфейса, который содержит объявления классов, функций, переменных и файл реализации, в котором содержится описание функций.
Стандартное расширение файлов реализации - .срр. Стандартное расширение заголовочных файлов - .h.
Начнем работу над приложением с создания нового проекта. Для этого выберем на вкладке File раздел New и далее VCL Forms Application C++Builder. У нас создался проект Project1, который содержит файлы Project1.cpp, Unit1.cpp и Project1PCH1.h (рисунок 2.1.1).
ЗАКЛЮЧЕНИЕ
В данной курсовой работе разработано клиент-серверное приложение для игры «Морской бой». Был использован язык С++, который без всяких трудностей позволил реализовать всю поставленную задачу. Были проведены все этапы разработки программы, начиная с постановки самой задачи до её непосредственной реализации.
Дальнейшую модификацию программы вижу в возможности иметь собственную учетную запись, в которой можно будет просмотреть статистику боев, сменить интерфейс. Введение системы достижений. Создание чата. Увеличить количество человек, одновременно подключенных к серверу.
В результате выполненной работы спроектировано и реализовано игровое приложение с GUI интерфейсом использующее обмен данными через буфер обмена в среде программирования Embarcadero C++ Builder XE10.
Приведенный пример анализа игры «Морской бой» показывает возможность использования логических игр для углубленного изучения таких разделов математики, как комбинаторика, теория множеств и теория вероятностей. Заметим, что изучение даже простейших игровых ситуаций позволяет сформулировать проблемы, которые представляют интерес для современной информатики и теории поиска.
Итогом работы можно считать созданную функциональную модель реализации стратегии игры «Морской бой». Созданная функциональная модель и ее программная реализация могут служить органической частью решения более сложных задач.
Скриншоты программы
1. М. Эллис, Б. Строуструп. Справочное руководство по языку C++ с комментариями: Пер. с англ. - Москва: Мир, 1992. 445с.
2. Стенли Б. Липпман. C++ для начинающих: Пер. с англ. 2тт. - Москва: Унитех; Рязань: Гэлион, 1992, 304-345сс.
3. Бруно Бабэ. Просто и ясно о Borland C++: Пер. с англ. - Москва: БИНОМ, 1994. 400с.
4. В.В. Подбельский. Язык C++: Учебное пособие. - Москва: Финансы и статистика, 1995. 560с.
5. Ирэ Пол. Объектно-ориентированное программирование с использованием C++: Пер. с англ. - Киев: НИИПФ ДиаСофт Лтд, 1995. 480с.
6. Т. Фейсон. Объектно-ориентированное программирование на Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с.
7. Т. Сван. Освоение Borland C++ 4.5: Пер. с англ. - Киев: Диалектика, 1996. 544с.
8. Г. Шилдт. Самоучитель C++: Пер. с англ. - Санкт-Петербург: BHV-Санкт-Петербург, 1998. 620с.
9. У. Сэвитч. C++ в примерах: Пер. с англ. - Москва: ЭКОМ, 1997. 736с.
10. К. Джамса. Учимся программировать на языке C++: Пер. с англ. - Москва: Мир, 1997. 320с.
11. В.А. Скляров. Язык C++ и объектно-ориентированное программирование: Справочное издание. - Минск: Вышэйшая школа, 1997. 480с.
12. Х. Дейтел, П. Дейтел. Как программировать на C++: Пер. с англ. - Москва: ЗАО "Издательство БИНОМ", 1998. 1024с.