Графическое оформление и Интерфейс игры




Оглавление

Оглавление..................................................................................................................................... 2

Пояснительная записка................................................................................................................. 3

Исследовательская часть............................................................................................................... 4

Этапы разработки игры............................................................................................................ 4

1. Выбор языка....................................................................................................................... 4

2. Алгоритмы технической части........................................................................................ 5

Сценарий игры...................................................................................................................... 6

Графическое оформление и Интерфейс игры..................................................................... 6

Тестирование и отладка................................................................................................................ 7

Заключение..................................................................................................................................... 7

Развитие программы................................................................................................................ 7

Итоги работы............................................................................................................................ 8

Список литературы....................................................................................................................... 9

 

Пояснительная записка

Целью моей работы становится: создание игры морской бой[1] с применением технологии объектно-ориентированного программирования.

Для достижения поставленной цели можно выделить следующие задачи:

1. Рассмотреть возможные для применения языки программирования и выбрать оптимальный язык для написания кода игры.

2. Прописать алгоритм технической части игры для клиентской части.

3. Прописать алгоритм технической части игры для серверной части игры.

4. Написать сценарий

5. Продумать графическое оформление и интерфейс игры.

6. Протестировать игру.

7. Сделать выводы.

Актуальность:

Создание игры «Морской бой» является актуальным в разных областях: игра прекрасно развивает логическое и стратегическое мышление, так в 2015 году Министерство Обороны РФ заказало разработку игры «Морской бой»[2] для солдат и студентов. В настоящее время также остается актуальным вопрос создания программных продуктов для упрощения и автоматизации различных процессов, а также для развлечения и других областей жизни человека.

Практическая значимость:

Созданное приложение представляет все этапы по созданию программного продукта и программную реализацию «Логическая игра «Морской бой»». Оно носит развлекательный характер, тренирует логическое мышление, способность выстраивать стратегии в определенных условиях. Многие в детстве играли в данную игру с помощью листочка и тратили время и бумагу на прорисовку кораблей, теперь есть возможность вспомнить про эту интересную игру, но уже используя компьютер.

Исследовательская часть

Объект исследования: Технологии объектно-ориентированного программирования

Предмет исследования: Применение данной технологии для создания логической игры

Методы исследования:

теоретические: моделирование, анализ

эмпирические: тестирование

математические: программирование

Сроки проведения: февраль-март 2021 года

Для игры Морской бой необходимо:

· Обеспечить связь между компьютерами играющих

· Создать GUI

Из широко распространенных программ, для выполнения поставленным задачам подходят веб-браузеры, так как они имеют веб-сокеты и возможность создания GUI

 

Этапы разработки игры

Выбор языка

Для пользовательский стороны был выбран язык JavaScript, так как его поддерживает почти каждый браузер.

Для сервера были рассмотрены следующие языки: Python и Lua.

Python:

Преимущества:

· Популярен

· Поддерживает функциональный стиль программирования и ООП

· Легко изучить

Недостатки:

· Не целостная система библиотек

· Не встраиваемый

Lua:

Преимущества:

· Большое сообщество, особенно — в сфере разработки игр.

· Поддерживает функциональный стиль программирования и ООП

· Просто встраивается, более того — он создан для того, чтобы его использовали как встраиваемый язык.

Из выше приведенных аргументов следует, что использовать Lua лучше, чем Python.

Средства написания кода выбраны, теперь нужно подготовить техническую части игры.

Алгоритмы технической части

Сначала разработаем протокол для связи клиента и сервера:

Формат сообщения:

1. Код пакета

2. Данные

Код пакета и данные разделены символом нижнего подчеркивания '_'.

Коды пакетов и их значения:

Клиентская сторона(передача):

Код Данные Комментарий
  Строка Подключение. Пользователь отправляет свой ник
  Строка Поиск противника. Пользователь отправляет ник своего противника
  Массив чисел(элементы разделены символом '_') Игрок готов к игре. Массив — поле игрока.
  Два числа Игрок делает ход. Данные — координата X и Y поля врага.

Серверная сторона(передача):

Код Данные Комментарий
  Число. Ответ на запрос с кодом пакета 1 Данные — найден(1)/не найден(0) игрок с введенным ником
  Ничего Отправляется, если соперник готов к игре
  Число. Отправляется, если оба игрока готовы к игре. Данные — чей ход(1-ход игрока, 0 — его противника)
  Три числа. Ответ на пакет с кодом 4. Данные: два числа-координаты, третье число — попал(1)/не попал(0)
  Два числа Посылается противнику при атаке. Данные — координаты клетки
  Строка Отправляется, когда один игрок потопил все корабли противника. Строка — сообщение о победе или поражении

 

Сценарий игры

1)Подключение

Когда игрок подключается он отправляет пакет с кодом 0. Чтобы найти противника, он отправляет серверу пакет с кодом 1. Сервер отправляет ему пакет с тем же кодом и числом(1-игрок с этим ником найден, 0-не найден), а также, если игрок с указанным ником найден, сервер отправляет ему пакет с кодом 1. После этого сервер ждет от обоих игроков пакета с кодом 2. Когда оба игрока готовы, сервер отправляет им пакет 3, определяя, чей ход будет первым.

2)Игра

Когда игрок делает ход, он отправляет пакет с кодом 4. Сервер отвечает ему пакетом с тем же кодом, а его противнику с кодом 5. Если он попал, то он продолжает игру.

Когда у кого-нибудь будут потоплены все корабли, сервер отправляет игрокам пакет с кодом 6 и сообщением о победе/поражении.

 

Графическое оформление и Интерфейс игры

 
 

Пользователь взаимодействует с интерфейсом 3 способами:

1. Нажимает на кнопки;

2. Вводит данные в поля;

3. Кликает на полях

Начало игры:

1. Запустить приложение с расширением.exe

2. Ввести в адресной строке браузера “https://адрес_компьютера/Seabattle” (противник вводит адрес компьютера противника)

3. Игрок вводит свое имя в поле Ник;

4. Нажимает на кнопку Подключиться;

5. Вводит ник противника в поле напротив кнопки «Поиск противника по нику» и нажимает на кнопку;

6. Когда противник найден, он расставляет корабли на своем поле;

7. Нажимает на кнопку Готов к игре.

 

Игровой процесс:
Ход игрока: когда игрок кликает на клетку в поле врага, то, если в это точке кораблей нет, эта клетка подсвечивается черным, иначе подсвечивается красным.

 

Ход противника: если противник попал в корабль, то эта клетка подсвечивается красным, а если нет, то эта клетка подсвечивается серым.

 

Тестирование и отладка

В процессе создания программы возникали различные проблемы, как со сложностью реализации некоторых участков программы, так и с ошибками в программном коде.

 

Например, возникли сложности при создании множества копий таблицы Player. Поскольку копии являлиль ссылками на таблицу Player, любое изменение в одной из копий, изменяло остальные. Решением проблемы было полное копирование таблиц. Для этого была создана функция, которая создавала таблицу и копировала в неё ключи и их значения из исходной таблицы. Дальнейшие тесты были удовлетворительными, по настоящий момент ошибки в этой функции не замечены.

 

Заключение

Достоинства и недостатки программы

В любом программном продукте есть свои достоинства и недостатки. Рассмотрим достоинства и недостатки «Логической игры «Морской бой»».

 

Достоинства:

 

· Удобный и простой интерфейс;

 

· Возможность играть по сети

 

Недостатки:

 

· Отсутствие справки к программе;

 

· Отсутствие дополнительных функций игры, увеличивающих интерес к ней;

 

· Нет проверки на правильность расстановки кораблей

Развитие программы

Для развития логической игры «Морской бой» необходимо изучить пожелания пользователя данного программного продукта и, в связи с этим, внести необходимые изменения в данный продукт. На данном этапе необходимо улучшить дизайн. Также можно добавить возможность игры с компьютером.

 

Итоги работы

Итогами данной работы являются углубление познаний в объектно-ориентированном программировании и проектировании, изучение работы с графикой.

Список литературы.

1. Морской бой [Электронный ресурс]: Википедия. Свободная энциклопедия. – Режим доступа: https://ru.wikipedia.org/wiki/Морской_бой_(игра) (дата обращения: 26.02.2021).

2. Игры: Министерство обороны Российской Федерации[Электронный ресурс]: Мультимедиа: Министерство обороны Российской Федерации. https://мультимедиа.минобороны.рф/multimedia/games.htm (дата обращения 27.02.2021)



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-11-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: