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. |
|
|
|