Robocode

Robocode ist eine offene Quelle Bildungsspiel, das mit Mathew Nelson (ursprünglich angefangen ist, zur Verfügung gestellt von IBM). Zurzeit werden Beiträge von verschiedenen Leuten geleistet; offiziell arbeiten Flemming N. Larsen und Pavel Šavara an Robocode, um es aktuell zu halten und die Programmfehler zu bestechen. Das Spiel wird entworfen, um Leuten zu helfen, zu lernen, in Java zu programmieren oder, in der Version 1.7.2.NET Fachwerk-Programmiersprachen (C#, VB.NET, usw.) anfangend, und die Erfahrung zu genießen. Es ist sehr leicht anzufangen - ein einfacher Roboter kann in gerade ein paar Minuten geschrieben werden - aber das Vervollkommnen einer Funktionseinheit kann Monate oder mehr nehmen.

Das Spiel

Mitbewerber schreiben Software, die eine Miniaturzisterne kontrolliert, die mit anderem identisch gebautem (aber verschieden programmiert) Zisternen in einem Spielplatz kämpft. Roboter können sich bewegen, nach einander, Ansehen für einander schießen, und die Wände schlagen (oder andere Roboter), wenn sie nicht sorgfältig sind. Obwohl die Idee von diesem "Spiel" einfach scheinen kann, musste die wirkliche Strategie gewinnen ist nicht. Gute Roboter können Tausende von Linien in ihrem der Strategie gewidmeten Code haben. Einige der erfolgreicheren Roboter verwenden Techniken wie statistische Analyse oder Versuche von Nervennetzen in ihren Designs.

Führen Sie sicher die Funktionseinheiten anderer Völker

Man kann einen Roboter gegen viele andere Mitbewerber prüfen, indem man ihr Java bytecode oder CLR Klassenbibliothek herunterlädt, so ist Designkonkurrenz wild. Robocode stellt einen Sicherheitssandkasten zur Verfügung (Funktionseinheiten werden darin eingeschränkt, was sie auf der Maschine tun können, die sie auf führen), der Internetneuverteilung sicher macht.

Bewegung und das Zielen

Konkurrenz von Robocode ist alle ungefähr zwei Dinge:

  1. Vermeiden Sie, zu viel (Bewegung) geschlagen
zu werden
  1. Versuchen Sie vorauszusagen, wohin der Gegner bewegen und sie schlagen wird, so viel wie möglich (Ins Visier nehmend)

Viele hoch entwickelte Techniken sind erschienen. Insbesondere viele Spitzenfunktionseinheiten verwerten:

  • Das Welle-Surfen - Anpassung Ihrer Bewegung und das Versuchen zu vermeiden, derselbe Weg zweimal geschlagen zu werden.
  • Das statistische Zielen - Sammelt Daten, der die Zielen-Situation zusammen damit beschreibt, was die richtige Entscheidung für jede Situation gewesen wäre. Verwenden Sie das Daten, um Zielen-Entscheidungen zu treffen.
  • Das Zielen von GuessFactor - Die am besten bekannte Form des Statistischen Zielens, wo die stats für feindliche Roboter jeder durch eine Zahl zwischen-1.0 und 1.0 (der "GuessFactor") ausgedrückt werden.
  • Muster, das - Versuche Zusammenpasst, Muster des beobachteten Verhaltens mit vorher beobachteten Mustern zu vergleichen, und Entscheidungen über das darum basierte Zielen zu treffen.

Beispielfunktionseinheiten

Mehrere Beispielroboter werden in Robocode eingeschlossen, um den Anfängern zu helfen, angefangen zu werden. Sie demonstrieren verschiedene grundlegende Techniken, die im Codieren von Robotern von der Ereignis-gesteuerten Programmierung verwendet sind, bis Daten zu Dateien für den Gebrauch später auszuschreiben.

Offene Quellfunktionseinheiten

RoboWiki hat einen umfassenden (obwohl unvollständig) Liste von offenen Quellrobotern

http://robowiki.net/wiki/Category:Open_Source_Bots.

Codegröße-Selbstbeherrschungen

Um die Mitbewerber zu prioritize was Eigenschaften zu zwingen, in eine Funktionseinheit einzuschließen, gibt es vier codesize Kategorien (codesize wird in Bytes durch ein Werkzeug gemessen):

  1. Megafunktionseinheiten - keine codesize Beschränkung
  2. Minifunktionseinheiten - weniger als 1500 Bytes
  3. Mikrofunktionseinheiten - weniger als 750 Bytes
  4. Nanobots - weniger als 250 Bytes

Es gibt keine Entsprechung für den.NET Roboter noch.

Ligen

Dort bestehen Sie (und haben bestanden) mehrere Ligen für Robocode.

RoboRumble@Home

Die aktive Hauptkonkurrenz ist RoboRumble@Home, eine dauernde Liga, die auf der verteilten Berechnung auf eine ähnliche Weise zu SETI@Home gestützt ist. RR@H zeigt Ligen für 1 auf 1, Handgemenge (frei für alle mit mehr als zwei Funktionseinheiten) und Mannschaften. 1 auf 1 und werden Handgemenge-Konkurrenzen für die vier Hauptcodegröße-Kategorien ausgeführt.

RR@H Gebrauch ein geltendes auf dem Durchschnitt gestütztes System kerben eine Funktionseinheit Hunderte gegen alles andere ein, die als Durchschnittliche Prozentsatz-Kerbe oder APS bekannt sind. Es gibt auch eine Rangordnung wo nur das Gewinnen oder Verlieren von Zählungen mit 2 Punkten, die für einen Gewinn, 1 für ein Band, und 0 für einen Verlust gegeben sind, der als die Premier League oder PL bekannt ist. Der Name wurde von der englischen Fußballliga desselben Namens begeistert, der von eines ähnlichen sich aufreihenden Mechanismus arbeitet.

Während der APS dazu neigt, eine Rangordnung zu sein, die Kraft gegen schwächere und stärkere Funktionseinheiten gleich widerspiegelt, neigt der PL dazu, Kraft gegen die stärkeren Funktionseinheiten zu widerspiegeln. So, während eine Funktionseinheit bei der Vermeidung dem einfachen Zielen mit 90-%-Genauigkeit sehr wirksam sein kann, und so eine hohe APS-Kerbe bekommt, kann eine andere Funktionseinheit nur mit 70-%-Genauigkeit ausweichen (d. h. noch gewinnend), aber im Stande sein, mit stärkeren Funktionseinheiten effektiver zu kämpfen. So würde es eine niedrigere APS-Kerbe, aber eine höhere PL-Rangordnung bekommen.

Zurzeit, unterstützt RoboRumble@Home nur javanische Roboter.

Aktuelle Rangordnungen

Die aktuelle Rangordnung für RoboRumble ist an http://darkcanuck.net/rumble verfügbar.

Robocode wenig Liga

Während nicht mehr nicht aktiv, der Robocode stellt Wenig Liga (eine wöchentliche Konkurrenz spezifisch für codesize-gezwungene Funktionseinheiten) noch Tische auf den vorigen geführten Turnieren zur Verfügung.

Zwillingsduell

Zwillingsduell ist 2v2 wöchentliches survivalist Turnier. Es hat eine Zeit lang gefehlt, aber jetzt ist es wieder aktiv. Dieses Turnier bringt auch neue Herausforderungen an Robocoders. Sie brauchen eine gute Mischung sowohl ein auf einem als auch Handgemenge-Strategie, um das erfolgreiche um dieses Spiel zu gewinnen. Das ist eine codesize-eingeschränkte Liga, die nur Mannschaften erlauben, haben weniger als 2,000 Bytes dazu teilgenommen. Das Format dieses Turniers ist gemeinsamer Antrag der einzelnen Beseitigung mit einer Ausnahme des Finales, das von 3 Reihen am besten ist.

Aktuelle internationale Konkurrenzen

  • Virtueller Kampf, der von CodeFest '11, das jährliche internationale Online-Codierfest der Computertechnikgesellschaft, ES-BHU gehalten ist
  • Robocode UdL, der durch den Universitat de Lleida gehalten ist
  • Robocode Irland - Robocode Irland, Spiele Fleadh Spielfest
  • IPL Robocode Konkurrenz 2010 - belgische Robocode Konkurrenz

Einige Roboter, die sich es lohnt zu erwähnen

Es

lohnt sich, viele Funktionseinheiten natürlich zu erwähnen, aber einige sind in ihrer Leistung sensationeller als andere, und einige haben Funktionseinheitsentwicklung von Robocode mehr beeinflusst als andere.

RR@H Meister

Der Strom (am 29. September 2009) Meister dessen ist RR@H:

Einflussreiche Funktionseinheiten

  • SandboxDT war einmal ein unschlagbarer Roboter. Es war als eine Krone seit langem und nur gewesen entthront zweimal geblieben! Das erste Mal durch den Duellanten und zweites Mal durch den Schatten, der seine Regierung beendet hat. Heutzutage setzt es noch fort, ein starker Mitbewerber zu sein, in neuen Codierern und Funktionseinheiten ziehend.
  • Schatten, eine Funktionseinheit, die Welle einführt, die Konzept in Robocode Surft. Während nicht der König ist, war es für die lange Zeit unantastbar gewesen. Es hält noch eine Handgemenge-Krone.
  • FloodMini, eine offene Quellminifunktionseinheit, die das Statistische Zielen zeigt, hatte helfen vielen Robocoders darin verstehen das Konzept des Statistischen Zielens.
  • CassiusClay, eine offene Quellspitzenfunktionseinheit, hat Codierer-Griff fortgeschrittene Bewegungs- und Zielen-Techniken geholfen.
  • Der Phönix, der Strom #5 Funktionseinheit, hat geholfen, die Macht des grafischen Beseitigens zu demonstrieren. Der Code, der verwendet ist, um Beseitigen-Information auf den Schirm zu ziehen, ist offene Quelle, befreit als DrawingBot.
  • YersiniaPestis, der Strom #11 Roboter, ist der erste Roboter, der geschafft hat, die PL-Krone vom Schatten zu nehmen.

Der Robocode Wiki

Die Hauptseite für Kenntnisse von Robocode und Diskussionen ist RoboWiki. Hier können Sie über Techniken und Strategien lesen, Info auf vielen Funktionseinheiten durchsuchen, Quellcode zu finden (sowohl Codeschnipsel, als auch vollenden Sie Wettbewerbsfunktionseinheiten), bitten Sie um Hilfe und mehr. RoboWiki veranstaltet auch den RoboRumble@Home.

Anfänger in Robocode könnten mit Den Robocode häufig gestellten Anfänger-Fragen anfangen wollen.

Siehe auch

  • RoboWar
  • Crobots

Links

ist ist

Sheng (Instrument) / Gesuch
Impressum & Datenschutz