SoftCraft
разноликое программирование

Top.Mail.Ru

Система управления танком для игры Robocode

(краткая аннотация)

© 2001 г. Н.И.Туккель, А.А.Шалыто

Санкт-Петербургский государственный институт точной механики и оптики
(технический университет)

Отсюда можно скачать полный текст статьи в формате pdf (285 кб)
А здесь лежит исходный текст программы на Java (14 кб)

Для алгоритмизации и программирования задач логического управления была предложена SWITCH-технология, которая в дальнейшем была развита применительно к разработке программного обеспечения событийных систем (www.softcraft.ru).

До последнего времени в SWITCH-технологии объединялись два стиля программирования - процедурный и автоматный. При этом авторов интересовал вопрос совмещения автоматного и объектно-ориентированного стилей.

Первый шаг в этом направлении был выполнен авторами при программировании в объектно-ориентированной среде быстрой разработки "Flora" ("Использование SWITCH-технологии при разработке программ в среде Flora/C+. Модель технологического процесса в цехе холодной прокатки. Программная документация", www.softcraft.ru). При этом автоматы, описывающие основные алгоритмы функционирования системы, были выделены как отдельные объекты среды разработки.

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

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

Исходя из целей настоящей работы, нас интересовала такая игра, которая в качестве языка программирования использовала бы не специализированный язык, а один из широко распространенных объектно-ориентированных языков. Единственной известной авторам игрой, отвечающей этому требованию, является недавно (в 2001 году) разработанная компанией "Alphaworks" игра "Robocode" ( http://robocode.alphaworks.ibm.com ).

Эта игра позиционируется фирмой IBM как средство для обучения программированию на языке Java на примере создания программы, являющейся системой управления танком, предоставляемым средой исполнения.

Настоящая работа содержит документацию (объемом 52 страницы), созданную при проектировании программы управления танком.

Примечание.
Программа может не работать с новыми версиями среды исполнения!
Hапример, 16.12.2002 для приведения программы в соответствие с последней версией среды, необходимо исправить вызов метода getLife() на вызов метода getEnergy() в строках 228 и 2224