Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

Разработка программного обеспечения проведения соревнований по программированию компьютерных игровых стратегий в среде MS Robotics Studio

Тип: дипломная работа
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Пиковые нагрузки во время проведения турниров. Анализ существующих систем проведения соревнований роботов: Java Robocode, Pascal Robotwar, Snake Battle, Microsoft Robotics Developer Studio. Соревнования по программированию компьютерных игровых стратегий.
Краткое сожержание материала:

Размещено на

Разработка программного обеспечения проведения соревнований по программированию компьютерных игровых стратегий в среде MS Robotics Studio

Введение

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

Интересный способ привлечения юных дарований к науке можно увидеть во многих ВУЗах мира. Например, преподаватель Университета Мэсси Гураб Сэн Губта сделал небольших роботов-футболистов для обучения программированию своих студентов четверокурсников. Комбинация электроники и программного обеспечения - это как раз то, что нужно. Во многих американских университетах соревнования роботов уже поставлены на поток [1].

В последние годы соревнования среди роботов стали популярными и в России. Открытый робототехнический турнир на Кубок Политехнического музея является ежегодными соревнованиями роботов, проводящимися в рамках научно-познавательной программы «Каникулы роботов в Политехническом». Турнир включает соревнования различной степени сложности, в которых могут принимать участие как простейшие узконаправленные конструкции, созданные начинающими, так и комплексные робототехнические устройства со сложной программной частью[2]. В 2011 году состоялся III Всероссийский робототехнический фестиваль. Победителем соревнований по профессиональной робототехнике по направлению «Промышленная автоматизация» стала команда из Саратова «MobRob», которая будет представлять Россию на престижных международных соревнованиях по робототехнике: Азиатско-Тихоокеанского региона ABU ROBOCON-2011 в Таиланде [3].

Наиболее популярными роботами для программирования являются роботы LEGO Mindstorms NXT. LEGO Mindstorms - это особая серия конструкторов, обладающих практически неограниченными возможностями. С помощью программного блока и различных датчиков можно создать робота, способного выполнять любые действия. Робот lego программируется подключенным по USB к компьютеру [4]. Цена таких роботов даже в базовой комплектации превышает 10000 рублей, что делает их недоступными большинству энтузиастов, желающих попробовать себя в области программирования роботов.

Альтернативным способом программирования роботов является программирования виртуальной модели, точной копии настоящего робота, в симуляционной среде, что позволяет сделать платформа Microsoft Robotics Developer Studio (MSRS). Среда разработки MSRS - это пакет разработчика для робототехники, ориентированный на программистов разных уровней. Визуальный язык программирования (VPL), входящий в состав MSRS, поможет писать простые программы начинающим энтузиастам. Симуляция виртуальных роботов позволит работать с техникой, которой еще нет, или выйти из положения, если использовать настоящего робота по каким-то причинам нельзя [5]. Важным фактором является то, что программа написанная на VPL для виртуального робота может исполняться и реальным роботом, оснащенным необходимыми приборами и сенсорами.

Целью дипломной работы является разработка программного обеспечения, предоставляющего возможность проведения соревнований по программированию компьютерных игровых стратегий на базе Microsoft Robotics Studio, включающего:

- Обеспечение возможности проведения турниров между роботами;

- Составление отчетов о проведенных турнирах;

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

1) Регистрация участников в системе;

2) Загрузка файлов участников на сервер;

3) Сохранение результатов соревнования в БД;

4) Формирование отчетов о турнирах;

5) Предоставление участнику соревнования информации для программирования роботов;

6) Запуск симуляции выполнения логики загруженных роботов.

1. Описание объекта управления

1.1 Структура объекта управления

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

Так как перед нами не стоит задача - автоматизировать какие-либо процессы, связанные со спецификой проведения соревнований, то нет необходимости анализировать их деятельность. Разработанная система предназначена для проведения студенческих соревнований по программированию компьютерных игровых стратегий на базе Microsoft Robotics Studio. Исходя из этого, можно сделать вывод, что нашей системой может пользоваться большое количество пользователей.

Система имеет клиент-серверную архитектуру, что сводит к минимуму нагрузку на клиентские машины и позволяет переложить ответственность за безопасность и надёжность хранения данных на сервер. В ряде случаев поддержание такой инфраструктуры упрощает выполнение предъявленных требований, так как проще организовать высокую степень безопасности на нескольких компьютерах (сервер), чем на нескольких десятках машин (клиент).

1.2 Функциональные особенности

Основные функции, которые необходимо чтобы предоставляла система её пользователям:

– регистрация участников в системе;

– загрузка проектов участников на сервер;

– загрузка файлов с сервера;

– выбор необходимой документации;

– запуск на выполнение необходимых проектов участников;

– сохранение результатов соревнований на сервере;

– формирование отчетов о прошедших турнирах;

– просмотр новостей о проекте, прошедших и предстоящих турнирах.

1.3 Пиковые нагрузки

Пиковые нагрузки возникают во время проведения турниров. В этот период от пользователей начинают в большем количестве поступать файлы проектов. Администраторами запускаются проекты участников для проведения турниров, в БД заносятся результаты проведенных соревнований, формируются отчеты о прошедших турнирах. В остальное время нагрузки на сервер равномерные, т.к. загрузка участниками своих проектов, а также их запуск на тестовое выполнение равномерен. Поддерживаемое максимальное количество одновременных пользователей - 1000 человек.

2. Обзор существующих систем проведения соревнований роботов

2.1 Java Robocode

Robocode - это обучающая игра с открытыми исходными кодами, разработанная Mathew Nelson и Flemming Larsen. Ее единственной целью было облегчение изучения языка программирования Java. Основным движущим элементом в обучении должна была стать конкуренция. Каждый участник пишет код на Java, который управляет небольшим танчиком, и сражается с другими такими же танками [6].

Проект Robocode был начат в середине 2000 г. и по замыслу его создателя должен быть стать развитием игры Robot Battle, адаптированным под язык Java. По мере развития проекта и написания кода для своих первых танков, автору пришла в голову гениальная мысль - совместить игровой процесс с обучением. Доступность и открытость модели Robocode позволяет любому начинающему программисту за несколько минут создать простой танк и приступить к его совершенствованию [7].

Суть соревнования заключается в организации боев роботов-танков. Каждый робот представляет собой отдельный класс, который наследует свойства и методы класса Robot. Таким образом, каждый робот может быть запрограммирован игроком на определенное поведение. После того, как игроки создали свои классы роботов, можно создать бой и выставить их друг против друга. В процессе игры роботы-танки могут двигаться по игровому полю, стрелять, узнавать месторасположение друг в друга, врезаться в стены и в других роботов, узнавать где находятся летящие пули и использовать всю мощь языка Java. На рисунке 2.1 приведен скриншот программы Robocode во время проведения турнира.

Рис. 2.1. Проведение соревнования роботов в Robocode

Интеллектуальный бой заключается в написании программы для управления танком на Java. Из основных возможностей игры можно отметить создание роботов, программирование их на Java, компиляция, запуск нескольких роботов в схватке и пошаговый просмотр битвы. У робота есть три подвижные части. Это тело, пушка и радар. Радар движется быстрее всех частей и отправляет соответствующее событие при обнаружении противника. Пушка имеет возможность выстрела, но команда выстрела дается из главного класса. Тело может поворачиваться, двигаться, высылать событие об ударе о стену [8].

2.2 Pascal Robotwar

RobotWar - игра для программистов, написанная Сайласом Уорнером. Каждый робот - это отдельная паскаль-программа, использующая свою собственную стратегию. В создаваемой игре необходимо поместить несколько роботов, а затем посмотреть, как они начнут войну за выживание с применением бомб, ракет, и прочих подручных материалов.

Основной составляющей игрового процесса было написание программы, управляющей роботом. После этого игрок мог выбрать нескольких роботов, которые будут сражаться друг с другом на арене, пока не останется только один. Игрок не мог прин...

Другие файлы:

Разработка программного обеспечения определения стоимости почтового тарифа пересылки бандероли наложенным платежом
Правила оказания услуг почтовой связи. Тарифы на оказание универсальных услуг почтовой связи. Программная реализация решения задачи. Пример выполнения...

Разработка программного обеспечения Web-приложения информационных систем "artposters.kz" для отдела архитектуры и дизайна компании ТОО "ILLUSTRATE studio"
Проектирование программного обеспечения Web-приложений информационных систем сайта, которое будет обеспечивать продажу декоративных постеров, а также...

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

Разработка модуля генератора специальных функций
Методика разработки схемы устройства для преобразования параллельного восьмиразрядного кода в длительность ШИМ-сигнала. Особенности создания программн...

Разработка приложения на VBA "Тест"
Создание программного обеспечения в среде Visual Basic for Applications для проведения теста по работе полушарий мозга человека. Описание команд. Разр...