Scalatron: Einstieg in Scala und Coding-Partys

Veröffentlicht am

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… :)

Was ist Scala?

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.

Was ist Scalatron?

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:

  • Alles dabei. Keine Entwicklungsumgebung notwendig.
  • Tutorial für Scala und Scalatron – mit vielen Code-Beispielen.
  • Benutzerverwaltung für Coding-Partys und -Turniere.

Download / Installation

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.

Getting started – wie anfangen?

Zunächst einmal kann der Server und das Spiel mit folgendem Aufruf gestartet werden (zuvor ins entpackte Verzeichnis wechseln):

java -jar bin/Scalatron.jar

Willkommen im Webclient von Scalatron

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.

Die Benutzerverwaltung von Scalatron

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.

Dein erster Bot!

Die Browser-IDE von Scalatron

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!

Der erste eigene Bot ist aktiv...

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.

Regeln, Dokus, usw.

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:

  • Das Regelwerk des Spiels. Wichtig, um Strategien für den eigenen Bot entwickeln zu können.
  • Die Doku des Protokolls. Die Kommunikation zwischen Bot und Spiel erfolgt über ein textuelles Protokoll. Hier sind die ein- und ausgehenden Anweisungen beschrieben.

Testen – oder: mein Bot tut nicht was er soll…

Testen der Bots in der Sandbox

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.

Und weiter?

Wer noch weiter gehen will…

  • … der sollte natürlich Eclipse bzw. die IDE seiner Wahl benutzen. Informationen u.a. dazu gibt die Doku Player-Setup.
  • … der kann zusammen mit Freunden – oder auch öffentlich – ein Turnier veranstalten. Seht dazu den gesamten Abschnitt To Run a Tournament... an. Speziell die Doku für das Server-Setup dürfte, je nach Größenordnung, auch interessant sein.
  • … der kann das Spiel selbst auch verändern (derzeit noch als experimentelles Feature bezeichnet). Hierzu gibt es die Doku Scalatron Pluggable Games.

Dieser Artikel wurde in der/den Kategorie(n) Planet-U, Programmierung und Skripting veröffentlicht und mit den Tags , , versehen.

5 Kommentare zu Scalatron: Einstieg in Scala und Coding-Partys

  1. Kommentar von Matthias
    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

    • Kommentar von Gerald
      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

  2. Kommentar von zerology
    21. Juli 2012, 19:12 Uhr.

    Herzlichen Dank für den Artikel!

    • Kommentar von Gerald
      21. Juli 2012, 19:16 Uhr.

      Ja gerne doch! Dir vielen Dank für deinen freundlichen Kommentar!

  3. Pingback: Scalatron: Eclipse für den Bot-Bau einrichten | ME and my U

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>