Scrabble Master

Scrabble Turnierserver für einen Programmierwettbewerb

Infinity Scrabble
In diesem Projekt soll ein Programm entwickelt werden, mit dem Turniere für Varianten von Scrabble gespielt und visualisiert werden können.
Dieses Progamm soll als Controller (Master) arbeiten, über das beliebige Spieler (Worker) gestartet und verwaltet werden können. Außerdem soll der Spielzustand visualisiert werden können. Die Spielprogramme (Worker) sollen eine sehr einfache Schnittstelle besitzen. Sie sollen ausschließlich über die Standard Ein- und Ausgabe kommunizieren.
Das gesammte System soll in einem Rechnenetz lauffähig sein, so dass die einzelnen Spielprogramme auf einzelne Rechner verteilt werden können. Die Kommunikationsebene und die Spiele-Verwaltung im Master sollen so getrennt werden können, dass das eigentliche Spiel modifizerite oder die Spielregeln geändert werden können, ohne dass die Kommunikationsebende berührt ist.
Weiter soll die Visualisierung des Scrabble-Bretts ebenfalls unabhängig von den Spielregeln arbeiten.
Das Spielfeld
In diesem Projekt soll nicht exakt das bekannte Scrabble Spiel implementiert werden, sondern eine Variation, die zum Teil vereinfacht und zum Teil verallgemeinert ist. Eine Verallgemeinerung ist die, dass das Spielfeld unbeschränkt groß ist. Die einzelnen Felder werden in Anlehnung an die Addressierung von Pixeln in einem Bild wie folgt addressiert: Das mittlere Feld, das zu Beginn des Spiels mit einem Stein belegt wird, hat die Koordinaten (0,0). Rechts davon liegt das Feld mit den Koordinaten (1,0), links (-1,0) oberhalb (0,-1) und unterhalb (0,1).
Wie im richtigen Scrabble besitzen die einzelnen Felder unterschiedliche Werte. Im Original gibt es hellblau für doppelten Buchstabenwert, blau für dreifachen Buchstabenwert, hellrot für doppelten Wortwert und dunkelrot für dreifachen Wortwert.
Die Verteilung der farbigen Felder für die erste Version des Spiels ist durch folgende Funktion beschrieben: FieldValue. Diese weicht natürlich vom Original etwas ab, und soll auch variiert werden können.
Die Spielsteine
Die Spielsteine im original Scrabble sind die 26 Großbuchstaben, den Joker ignorieren wir der Einfachheit halber. Hier soll es aber durchaus möglich sein, mit anderen Zeichen zu spielen, zum Beispiel nur mit 0 und 1 für ein Binary Scrabble oder die Ziffern von 0 bis 9 (oder Hexadezimalzahlen) für ein denkbares Primzahlen Scrabble. Wir wollen hier alle druckbaren Zeichen als mögliche Spielsteine zulassen. Für eine Spielvariante wird also ein Alphabet festgelegt einschließlich einer Bewertungsfunktion für jedes Zeichen.
Das Wörterbuch
Der Spiele Master muss für jede Spielvariante ein Wörterbuch bereitstellen, dass vor einem Zug zu den Spielern übertragen werden muss. Nur Wörter in dieser Liste sind erlaubt. Diese Wörter müssen natürlich aus mindestens 2 Zeichen bestehen.
Das Kommunikationsprotokoll
Zwischen dem Master und den Spielern muss ein einfaches aber sicheres Protokoll definiert werden. Hier ist eine Möglichkeit die, dass alle Nachrichten genau aus einer Zeile bestehen. Jede Zeile besteht aus Kommandonamen und möglicherweise eine durch Leerraum getrennte Liste von Argumenten. Die Kommunikation läuft so, dass der Master eine Anfrage-Zeile sendet, der Spieler diese einließt und auf den Empfang mit einer Antwortzeile reagiert. Diese besitzt das gleiche Format wie die Anfrage. Dieses Protokoll ist im Detail zu entwickeln.
Programmiersprachen und Werkzeuge
Hier sind unterschiedliche Ansätze möglich:
Java
in der Version 1.5 oder neuer ist sicher eine Option. Hierbei sollte man aber bedenken, dass einige betriebssystemnahe Funktionalitäten zum Starten der Spielprogramme auf entferneten Rechnern und für die Kommunikation notwendig sind. Auch die Visualisierung ist in Java mit Swing nicht ganz einfach.
Ruby, Python oder Tcl
Eine Skriptsprache wie Ruby, Python oder das gute alte Tcl kann hier eine bessere Wahl sein, da diese häufig als Glue Languages eingesetzt werden. Tcl besitzt mit Tk eine einfach zu handhabende Grafik-Schnittstelle. Diese ist auch von Ruby und Python aus verwendbar.
Umgebung
Linux auf RZ Rechnern
Konfiguration
Für ein Scribble Turnier ist es erforderlich, den Master so zu konfigurieren, dass die Spielprogramme und die zugeordneten Rechner einfach angepasst werden können. Informationen über die Spieler, z.B. die Spieltabelle müssen hieraus auch gelesen werden.
etc.

Hauptnavigation