Du wolltest immer schon einmal eine Programmiersprache erlernen? Oder du möchtest eine weitere Programmiersprache entdecken? Wie wär’s mit Scala?
Beim Einstieg in Scala könnte das Programmierspiel Scalatron hilfreich sein. Du kannst mit den Begriffen Scala und Scalatron nichts anfangen – oder du weißt nicht, was mit “Programmierspiel” gemeint ist? Dann ist dieser Artikel der Richtige für dich!
Aber auch, wenn du schon Scala-erfahren bist: schau dir Scalatron an! Es ist eine Herausvorderung, die Spaß macht. Und mit der man sicher nette Coding-Partys schmeißen kann…
Ganz kurz für alle, denen Scala bisher höchstens als Opernhaus bekannt ist: Scala ist eine der Programmiersprachen, deren Programmcode in Java-Bytecode übersetzt werden. Die Programme sind daher auf der JVM lauffähig.

Im Vergleich zu Java bietet Scala viele interessante Features und die Möglichkeit, mit wenig Code viel zu bewirken. Ich möchte hier gar nicht zu sehr ins Detail gehen – weitere Informationen bekommt ihr natürlich bei Wikipedia. Die Möglichkeiten begeistern jedenfalls und die Tatsache, dass man ohne weiteres ein Java-Projekt mit Scala-programmierten Teilen anreichern kann, ist schon toll.
Scalatron ist ein Programmierspiel - ein Spiel, bei dem die “Spieler” ihre Figuren nicht direkt steuern können. Stattdessen werden eigene Programm-Module (jedes Modul stellt einen Spieler dar) geschrieben, die auf alle möglichen Spielsituationen bestmöglich reagieren sollen. Der eigene Code entscheidet somit, wie intelligent die Figur handelt – und wer letztlich gewinnt.
Wie weit es mit solchen Programmierspielen gehen kann zeigt sich am Beispiel Robocode – eines der bekanntesten Programmierspiele, bei dem man den eigenen Programmcode in Java schreibt. Hier haben sich ganze Ligen im Internet gebildet (beispielsweise RoboRumble), in denen sich die selbst programmierten Roboter messen können.
Im Vergleich zu Scalatron bedarf es allerdings bei Robocode viel mehr Kenntnisse in Mathematik und speziell Geometrie. Zudem ist Scalatron viel umfangreicher und leichter zu bedienen.
Noch ein paar Facts, die hoffentlich Lust auf mehr machen:
Eine Installation ist nicht notwendig. Man lädt einfach die aktuellste, stabile Version von der GitHub-Downloadseite herunter und entpackt das ZIP-Archiv an gewünschter Stelle im Filesystem.
Zusätzlich benötigt wird lediglich Java.
Zunächst einmal kann der Server und das Spiel mit folgendem Aufruf gestartet werden (zuvor ins entpackte Verzeichnis wechseln):
java -jar bin/Scalatron.jar
An dieser Stelle gleich der Hinweis: wer hinter den Aufruf noch -help anhängt, bekommt eine Auflistung aller Start-Optionen angezeigt. Das sollte aber nur für fortgeschrittene Wünsche notwendig sein.
Dabei öffnet sich einerseits das Fenster Scalatron BotWar, das das eigentliche Spiel darstellt. Außerdem wird ein Browser-Fenster bzw. -Tab geöffnet – und zwar auf die Adresse http://localhost:8080.
Von dort aus kann man nun gleich über den Administrator-Link (der einzige auf der Seite) in den Verwaltungsbereich wechseln.
Als Administrator kann dann das zunächst das Admin-Kennwort gesetzt (falls gewünscht) und ein eigener Benutzer angelegt werden. Wie das funktioniert ist wohl selbstverständlich…
Danach wieder zurück zur Startseite wechseln und mit dem eigenen Benutzer anmelden. Es zeigt sich die Oberfläche zur Entwicklung des eigenen Programm-Moduls. Links das Tutorial und rechts die Entwicklungsumgebung.
Die Oberfläche startet sofort mit einem leeren Grundgerüst für einen Bot. Um diesen ins Spiel einfließen zu lassen, klickt man einfach auf Publish into Turnament, wechselt in das Spiel-Fenster und drückt dort R, um das neu erstellte Modul zu laden. Gleichermaßen geht man auch bei jeder Änderung des Programmcodes vor.
Nun solltest du deinen Bot sehen können – sowohl auf dem Spielfeld, als auch in der Spielerliste auf der rechten Seite. Leider tut der Bot bislang überhaupt nichts und wird innerhalb kürzester Zeit vom Reference-Bot besiegt. Kein Wunder – du hast ja auch noch nichts programmiert!
Nun kannst du das Tutorial auf der linken Seite in der Weboberfläche durchgehen, Programmbeispiele ausprobieren (dazu gibt es jeweils den Button Load into Editor) und dich an eigenen Ideen versuchen.
Wenn man das Spieltreiben etwas beobachtet, versteht man, finde ich, viele der Regeln recht schnell. Trotzdem ist es natürlich für die Programmierung eines erfolgreichen Bots notwendig, die Regeln genau zu kennen. Zudem beschreibt das Tutorial nicht alle Funktionen, die im eigenen Bot benutzt werden können. Deshalb hier eine kleine Übersicht, der interessantesten Dokus (alle in englischer Sprache). Die sind zwar alle samt auf der Projekt-Seite zu finden, ich möchte aber gezielt noch einmal darauf verweisen:
Eine einfache aber toll gemachte Testumgebung ist bereits in der mitgelieferten Browser-IDE enthalten. Wer seinen Bot testen möchte, klickt einfach anstatt auf Publish into Tournament auf Run in Sandbox.
Darauf hin wird auf der rechten Seite ein weiterer Fensterbereich geöffnet. In dem sieht man oben eine “Test-Arena” und darunter verschiedene Informationen über den Zustand des Bots. Nun kann man über die Buttons Run, Step, Step 10 und Restart das Geschehen starten und ggfs. Schritt für Schritt durchgehen.
Wer noch weiter gehen will…
To Run a Tournament... an. Speziell die Doku für das Server-Setup dürfte, je nach Größenordnung, auch interessant sein.
5 Kommentare zu Scalatron: Einstieg in Scala und Coding-Partys
14. Juli 2012, 16:17 Uhr.
Hallo,
also das Spiel hat doch eine gewisse Ähnlichkeit mit AntMe
Trotzdem finde ich es sehr interessant und werde es sicherlich auch mal aus testen.
MFG Matthias
14. Juli 2012, 16:44 Uhr.
Hmmm, AntMe kannte ich bislang nicht. Leider bin ich auch weder mit C# noch mit VisualBasic unterwegs – wobei das Spiel an sich interessant aussieht. Danke für dein Feedback! Gruß, Gerald
21. Juli 2012, 19:12 Uhr.
Herzlichen Dank für den Artikel!
21. Juli 2012, 19:16 Uhr.
Ja gerne doch! Dir vielen Dank für deinen freundlichen Kommentar!
Pingback: Scalatron: Eclipse für den Bot-Bau einrichten | ME and my U