Robocode

Robocode

Infobox Software
name = Robocode



caption =
collapsible =
author = Mathew Nelson
developer = Flemming N. Larsen
released =
latest release version = 1.6.0.1
latest release date = June 02, 2008
latest preview version =
latest preview date =
programming language =
operating system = Cross-platform (Requires Java)
platform = Java
size =
language =
status =
genre = Programming game
license = Common Public License
website = http://robocode.sourceforge.net/

Robocode is an Open Source educational game started by Mathew Nelson (originally provided by IBM). Currently contributions are being made by various people; officially Flemming N. Larsen is working on Robocode to keep it current and fix the bugs. The game is designed to help people learn to program in Java and enjoy the experience. It is very easy to start - a simple robot can be written in just a few minutes - but perfecting a bot can take months or more.

The game

Competitors write software that controls a miniature tank that fights other identically-built (but differently programmed) tanks in a playing field. Robots move, shoot at each other, scan for each other, and hit the walls (or other robots) if they aren't careful. Though the idea of this "game" may seem simple, the actual strategy needed to win is not. Good robots can have thousands of lines in their code dedicated to strategy. Some of the more successful robots use techniques such as statistical analysis and attempts at neural networks in their designs.

Safely run other peoples' bots

One can test a robot against many other competitors by downloading their bytecode, so design competition is fierce. Robocode provides a security sandbox (bots are restricted in what they can do on the machine they run on), which makes internet redistribution safe.

Movement and Targeting

Robocode competition is all about two things:
# Avoid getting hit too much ( [http://robowiki.net/?Movement Movement] )
# Try to predict where the opponent(s) will move and hit them as much as possible ( [http://robowiki.net/?Targeting Targeting] )Many sophisticated techniques have emerged. In particular, many top bots utilize:
* [http://robowiki.net/?WaveSurfing WaveSurfing] - Adapting your movement and trying to avoid getting hit the same way twice.
* [http://robowiki.net/?StatisticalTargeting StatisticalTargeting] - Collect data that describes the targeting situation together with what would have been the correct decision for each situation. Use this data to make targeting decisions.
* [http://robowiki.net/?GuessFactorTargeting GuessFactorTargeting] - The best known form of StatisticalTargeting where the stats for enemy robots are each contained inside one number (the "GuessFactor").
* [http://robowiki.net/?PatternMatching PatternMatching] - Tries to match patterns of observed behavior with previously observed patterns, and make decisions on targeting based around that.

Sample bots

Several sample robots are included in Robocode to help the beginners get started. They demonstrate various basic techniques used in coding robots, from event-driven programming to writing out data to files for use later.

Open source bots

Check the RoboWiki's open source bots listing:
* http://robowiki.net/?OpenSourceIt isn't complete, but there are lots of bots there.

Code size restraints

To force the competitors to prioritize what features to include in a bot there are four codesize categories (codesize is measured in bytes by a tool):
# Megabots - no codesize restriction
# Minibots - less than 1500 bytes
# Microbots - less than 750 bytes
# Nanobots - less than 250 bytes

Leagues

There exist (and have existed) several leagues for Robocode.

RoboRumble@Home

The main active competition is the [http://robowiki.net?RoboRumble RoboRumble@Home] , a continuous league based on distributed computation in a similar way to SETI@Home. The RR@H features leagues for 1-on-1, melee (free for all with more than two bots) and teams. 1-on-1 and melee competitions are carried out for the four main code size categories.

The RR@H uses an ELO like rating system. But since all bots get to meet all other bots this is mainly a measure on how well you perform against all others. There is also a ranking where only winning or losing counts. Don't lose against any other bot and you're the sure champion here.

Current rankings

Check the current rankings here:
* http://robowiki.net/?RoboRumble/CurrentRankings

Robocode Little League

While no longer active, the [http://robocode.yajags.com/ Robocode Little League] (a weekly competition specifically for codesize-constrained bots) still provides tables on the past tournaments run.

Some robots worth mentioning

Many bots are worth mentioning, of course, but some are more spectacular in their performance than others, and some have influenced Robocode bot development more than others.

RR@H Champions

The current (March 2007) champions of the RR@H are:

Influential bots

Once deemed impossible to beat, [http://robowiki.net/?SandboxDT SandboxDT] continues to be a strong competitor, drawing in new coders and bots.

Noted for spurring development are such bots as Shadow, which introduced WaveSurfing, and [http://robowiki.net/?FloodMini FloodMini] , an open source minibot featuring StatisticalTargeting.

An open source top bot, [http://robowiki.net/?CassiusClay CassiusClay] has helped coders grasp advanced movement and targeting techniques.

[http://robowiki.net/?Phoenix Phoenix] , the current #2 bot, has helped to demonstrate the power of graphical debugging. The code used to draw debugging information onto the screen is open-source, released as [http://davidalves.net/robocode/sample/DrawingBot.java DrawingBot] .

The Robocode Wiki

The main site for Robocode knowledge and discussions is the [http://robowiki.net RoboWiki] . Here you can read about techniques and strategies, browse info on many bots, find source code (both code snippets and complete competitive bots), ask for help and more. The Robowiki also hosts the RoboRumble@Home.

Beginners in Robocode might want to start with [http://robowiki.net/?BeginnersFAQ The Robocode Beginners FAQ] .

External links

* [http://robocode.sourceforge.net/ Official Website]
* [http://sourceforge.net/projects/robocode/ Robocode] on SourceForge.net
* [http://robowiki.net RoboWiki]
* [http://www.robocode.ie/ Irish Robocode Competition]
* [http://www.robocode.de/ German Robocode Website]
* [http://jgap.sf.net/ Evolving Robocode robots with JGAP (Java Genetic Algorithms and Genetic Programming Package)]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • Robocode — Startbildschirm Robocode ist ein Open Source Programmierspiel, bei dem virtuelle Roboter auf einem Spielfeld gegeneinander kämpfen. Entwickelt wurde es von Mathew Nelson (ursprünglich von IBM), zurzeit ist Flemming N. Larsen Hauptentwickler und… …   Deutsch Wikipedia

  • Robocode — Splash screen de Robocode Robocode est un jeu vidéo éducatif libre créé et distribué gratuitement par IBM. Il est destiné à l apprentissage du langage de programmation Java. Les joueurs programment un logiciel contrôlant les réactions d un ou… …   Wikipédia en Français

  • Программерская игра — Игра для программистов  компьютерная игра, в которой человек не участвует напрямую в игре. Вместо этого он пишет управляющую программу, сражающуюся с себе подобными программами. Такие игры являются сложным и нетривиальным упражнением для… …   Википедия

  • TankAI — is a Robocode clone written in Microsoft Visual C# 2005 by Michael T. Moosman. TankAI is currently in beta and no official release date has been set. Like Robocode , TankAI is designed to help people learn programming in a fun environment and can …   Wikipedia

  • Игра для программистов — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете …   Википедия

  • Griffith College Dublin — Infobox University name =Griffith College Dublin native name =Coláiste Uí Ghríofa, Baile Átha Cliath established =1974 type =private students =8,500 campus = Urban, convert|7|acre|m2 calendar =Semester affiliations =HETAC, HECA president… …   Wikipedia

  • Automata-based programming (Shalyto's approach) — Automata Based Programming is a programming technology [1] . Its defining characteristic is the use of finite state machines to describe program behavior. The transition graphs of a state machines are used in all stages of software development… …   Wikipedia

  • Programmierspiel — Screenshot von Core War Ein Programmierspiel ist ein Computerspiel, bei dem der Spieler keinen direkten Einfluss auf den Spielverlauf hat, sondern statt dessen ein Computerprogramm in einer domänenspezifischen Programmiersprache schreibt, das die …   Deutsch Wikipedia

  • Strategisches Programmierspiel — Ein Programmierspiel ist ein Computerspiel, bei dem der Spieler keinen direkten Einfluss auf den Spielverlauf hat, sondern statt dessen ein Computerprogramm in einer domänenspezifischen Programmiersprache schreibt, das die Steuerung der… …   Deutsch Wikipedia

  • Switch-технология — технология разработки систем логического управления на базе конечных автоматов, охватывающая процесс спецификации, проектирования, реализации, отладки, верификации, документирования и сопровождения. Предложена А. А. Шалыто в 1991 году [1].… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”