Home / LinuxUser / 2003 / 08 / Grafische Frontends für Internet-Schach-Server

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Aufmacher Artikel

Schach, nicht matt

Grafische Frontends für Internet-Schach-Server

01.08.2003 Internet-Schach-Server bieten Schachspielern vom Anfänger bis zum Vereinsspieler seit Jahren die Möglichkeit, rasch Spielpraxis zu erwerben. Auch Linuxer profitieren davon, denn die grafischen Client-Programme werden immer besser.

Egal zu welcher Uhrzeit der Wunsch nach einer Partie Schach auftaucht – auf den zahlreichen Schach-Servern des Internet finden sich schnell Spielpartner. Nicht überall sind Linuxer jedoch gleich gern gesehen: So darf man eine der bekanntesten Online-Spielstätten, den Internet Chess Club (ICC, [2]), vor der gebührenpflichtigen Anmeldung zwar sieben Tage lang kostenlos testen, jedoch nur mit dem Windows-Schachbrettprogramm Blitzin. Gebührenfrei bleibt lediglich das Spielen wertungsfreier Partien als Gast, und das geht auch unter Linux. Andere Server wie der der Zeitschrift "Schach-Magazin 64" [4] arbeiten grundsätzlich nur mit Windows-Clients zusammen.

Der wohl berühmteste nichtkommerzielle Schach-Server ist der "Free Internet Chess Server" (FICS, [3]). Neben schnell zu findenden menschlichen Spielpartnern gibt es hier auch Computergegner und spezielle Automaten-Programme, die in regelmäßigen Zeitabständen Schachlektionen erteilen. Als entfernter Abkömmling des 1992 ins Leben gerufenen Internet Chess Server (ICS) ist er zu diesem kompatibel.

Auf so manch anderem ICS-kompatiblen Server (siehe [1]) findet man allerdings kaum menschliche Gegner vor. Hinweise auf sonstige Schach-Server und ihre Qualität geben Schach-Newsgruppen wie [5] und [6].

Die meisten Server erlauben den Zugriff über das Kommandozeilenprogramm telnet. Das ist zwar Linux-freundlich, heißt aber auch Textmodus: Das Schachbrett besteht aus Textzeichen, Kommandos gibt man grundsätzlich per Tastatur ein (Abbildung 1).

Abbildung 1

Abbildung 1: Eine telnet-Partie auf dem FICS

Man mag über diese "altertümliche" Bedienmethode lächeln – die dabei verwendeten Kommandos bleiben aber auch dann nützlich, wenn man per grafischem Client auf den Server zugreift: Nicht alle der durch die Kommandos bereit gestellten Funktionen haben auf der grafischen Schnittstelle eine Entsprechung; eine integrierte Kommandozeile bieten die GUI-Programme jedoch in jedem Fall. Für die meisten Kommandos (Tabelle 1 und Kasten 1) reicht es übrigens, eine Abkürzung zu tippen: statt variables zum Beispiel var oder sogar nur v.

Kasten 1: Gezielte Nutzung von Schach-Servern

Wer sein Schachspiel verbessern möchte, braucht vor allem starke Gegner. Um Spielangebote entsprechend zu filtern, weist man der Variablen formula auf der Kommandozeile eine entsprechende "Formel" zu. Das kann so einfach aussehen wie

set formula ratingdiff > 0

was dem Wunsch nach einem Gegner mit höherer Spielstärke Rechnung trägt. (Die Variable ratingdiff steht für die Differenz zwischen dem Rating des Gegners und dem eigenen.) Alle anderen Angebote lehnt der Server automatisch ab. Weitere Filterkriterien können zum Beispiel Bedenkzeit oder Wertung sein. Ausführliche Informationen zu diesen Möglichkeiten gibt der Server-Befehl help formula.

Wer des öfteren seine Vorlieben wechselt, legt sich mit den Variablen f1 bis f9 Shortcuts für verschiedene Filterregeln an. Abbildung 1 zeigt ein Beispiel. Seit der dort gezeigte Spieler den Befehl set formula f5 & f3 eingab, sucht der Server für ihn nach Spielen, bei dem der Gegner ein höheres Rating hat (Shortcut f5) und (&) die Bedenkzeit in einem gewissen Wertebereich liegt (Shortcut f3). Dabei gibt die Variable maxtime(40) die maximale Zeit an, die beide Spieler gemeinsam für 40 Züge verbrauchen dürfen. Vergisst man hier das Wort minutes, wird sie in Sekunden gezählt. Kasten 2 beschreibt die Bedenkzeiten näher.

Der Shortcut f7 in Abbildung 1 erlaubt ein Filtern nach Partien mit schwarzen Steinen (black). Sucht der Spieler unbewertete (unrated) Blitzschach-Partien mit Schwarz, legt er das mit set formula f1 & f7 fest. Dieses Kriterium filtert jedoch so stark, dass wahrscheinlich keine Spielangebote übrig bleiben. Hier ist es sinnvoller, mit dem Kommando seek ein Gesuch abzusenden:

seek 4 8 unrated black

bietet eine nicht in die Wertung aufzunehmende Partie an, bei der die Startzeit vier Minuten beträgt, jeder Spieler acht Sekunden Zeitzuschlag pro Zug bekommt (vgl. Kasten 2) und der Anfragende die schwarzen Steine führt. Lässt man die beiden Zeitangaben weg, so gelten die Werte der Server-Variablen time und inc, die man mit dem Kommando set ändert (siehe auch Tabelle 1).

Auch die Antworten auf ein seek-Gesuch lassen sich mit der eingestellten Filter-Formel auf passende Angebote abklopfen:

seek formula

Gemäß Default-Einstellung startet ein Spiel automatisch, sobald jemand auf das Gesuch antwortet. Will man das nicht, gibt man dem seek-Kommando den zusätzlichen Parameter manual mit auf den Weg. Dann obliegt es dem suchenden Spieler, eine Antwort mit decline abzulehnen oder mit accept anzunehmen.

Tabelle 1: Eine Auswahl wichtiger Kommandos beim FICS

Parameter in eckigen Klammern [ ] sind optional und dürfen (ohne Klammern, durch Leerzeichen getrennt) in beliebiger Reihenfolge eingegeben werden.

Zu verschiedenen Kommandos gibt es weitere, hier nicht gelistete Parameter, die der Online-Hilfe des Schach-Servers zu entnehmen sind. Manche Befehle sind nur für registrierte Benutzer verfügbar.

Online-Hilfe
Hilfe-Text aufrufen: help [Befehl]
Spielpartner finden (siehe auch Kasten 1)
Gesuche auflisten: sought
Während der Partie
Dem Gegner etwas mitteilen: say Text
Vertagung der Partie anbieten: adjourn
Abbruch der Partie anbieten: abort
Sieg wegen Bedenkzeit-Überschreitung fordern: flag
Remis anbieten: draw
Wiederaufnahme vertagter Partien
Einem Spieler die Fortsetzung einer Partie anbieten: match Spieler
Fortsetzung einer vertagten Partie bei allen verfügbaren Benutzern anfragen: resume
Laden und Abspeichern von Partien
Vertagte Partien auflisten: stored [Spieler] [Nummer]
Eigene, auf dem Server gespeicherte Partien oder die eines anderen Spielers auflisten (maximal zehn Stück, ältere werden überschrieben): history [Spieler]
Endposition einer gespeicherten Partie anschauen: sposition Spieler [Spieler2] [Nummer]
Eine Partie per E-Mail zusenden lassen (nicht für Gäste): mailstored Spieler [Nummer] [Spieler2]
Gespielte Partien automatisch per E-Mail zusenden lassen: set automail 1
Nachspielen und Beobachten von Partien
Ein laufendes Spiel beobachten: observe [Nummer] [Spieler]
Beobachtung aller Spiele beenden: unobserve
Beobachtung eines Spiels beenden: unobserve [Spieler] [Nummer]
Spieler-Informationen
Informationen über einen Spieler anzeigen (ohne Parameter sieht man die eigenen Informationen): finger [Spieler]
Spieler auflisten: who
Verfügbare Spieler auflisten: players
Einstellungen (Server-Variablen)
Eigene Variablen oder die eines anderen Spielers auflisten: variables [Spieler]
Eine Variable ändern: set Variable Wert
Filter für Spielangebote einstellen (siehe Kasten 1): set formula Formel
Filter wieder ausschalten: set formula
Kommunikation
Einem Spieler etwas mitteilen: tell Spieler Text
Allen Spielern etwas mitteilen: shout Text
Schachbezogene Mitteilungen an alle: cshout Text

Schach mit Java

Wer seinem Web-Browser eine Java-Laufzeit-Umgebung spendiert, kommt mit den Applets JavaBoard 1.04 auf der FICS-Website [3] (Abbildung 2) oder ChessPlayer 1.22 auf dem französischen Schach-Server jeu.echecs.com nach einer gewissen Ladezeit in den Genuss einer farbig gestalteten Schachpartie. Über JavaBoards intuitiv bedienbares GUI lässt sich schon über eine Modem-Verbindung gut Schach spielen. Doch nicht alle Linux-Browser machen hier in jeder Version mit. Unter SuSE 8.1 verweigerten Opera 6.03, Mozilla 1.01 und Netscape 4.8 die Mitarbeit, nur Konqueror machte bei dieser Distribution keine Probleme.

Abbildung 2

Abbildung 2: Im Applet "JavaBoard" gibt man Kommandozeilenbefehle am unteren Rand des oberen Fensters ein

Weniger Reibungsverluste entstehen, greift man auf ein auf dem lokalen Rechner laufendes Frontend-Programm für ICS-kompatible Server zurück. Ist der Rechner mit einer Java-2-Laufzeitumgebung ausgestattet, bietet sich das Java-Programm Jin 2.07 [7] an (Abbildung 3). Zur Inbetriebnahme reicht es, das Archiv jin-2.07rc1.tar.gz zu entpacken und den Java-Interpreter mit dem Kommando

java -jar Pfad/zu/jin.jar

aufzurufen.

Abbildung 3

Abbildung 3: Das Java-Programm Jin ist erstaunlich komfortabel

Bislang bietet Jin nur die Auswahl zwischen dem Free Internet Chess Server und dem Internet Chess Club, übernimmt dort aber auch bei Bedarf die Registrierung als Dauernutzer.

Eine funktionierende Soundkarte vorausgesetzt, heißt einen der Server nach jedem Login mit freundlicher Stimme willkommen. Nicht immer trifft Jin jedoch den guten Ton: So untermalt es eine Rochade mit einem recht eigenwilligen Geräusch.

Das Schachspielen selbst gestaltet sich mit Jin recht angenehm. Im Pulldown-Menü Chess Board (Abbildung 3) finden sich verschiedene Optionen für die Zugeingabe, und wenn man einen Zug in der Tabelle rechts neben dem Brett anklickt, gelangt man direkt zur jeweiligen Stellung.

Das Aussehen des Schachbretts ändert man über Einträge im Hauptmenüs: Den Figurensatz wählt man bei Chess Board / Piece Sets, das Brett bei Chess Board / Boards, und die Farben der Figuren und Felder bei Preferences / Chess Board. Es empfiehlt sich, die schwarzen Felder etwas heller einzustellen, (Abbildung 4). Der Farbendialog erlaubt es nicht nur, vordefinierte Farben zu wählen; man kann sie auf den Reitern HSB oder RGB auch selber mischen. Der Haken an der Geschichte: Um all dies zu konfigurieren, muss man mit dem Schach-Server verbunden sein.

Abbildung 4

Abbildung 4: Die Farben der Figuren und Felder lassen sich bei Jin im Menü Preferences / Chess Board einstellen

Ähnlich wie das JavaBoard-Applet aus Abbildung 2 stellt Jin die Spielgesuche als Punkte in einem zweidimensionalen Graphen, dem Sought Games oder Seek Graph dar (Abbildung 3). Auf der x-Achse trägt das Programm die Dauer der Partie und auf der y-Achse das Rating des anfragenden Spielers auf. So symbolisiert ein Punkt oben links im Graphen ein Gesuch mit wenig Bedenkzeit und einem starken Gegner.

Zum Umschalten zwischen den Fenstern dienen bei Jin die Tastenkombinationen [Strg-Tab] oder [Strg-F6]. Andere Shortcuts erleichtern die Eingaben auf der Kommandozeile: Klickt man mit der rechten Maustaste auf einen Spielernamen in der Konsole, erscheint ein Kontextmenü mit Server-Kommandos wie match, finger, variables und anderen. Mit [Umschalt-Einfg] lässt sich Text aus der Zwischenablage in die Kommandozeile einfügen.

Viel Liebe zum Detail steckt auch in den Chat-Funktionen. Experten haben zudem die Möglichkeit, Skripte zu erstellen, um gewisse Vorgänge zu automatisieren, zum Beispiel das Antworten auf tell, die Suche nach Spielen und das Filtern von Chat-Themen.

Anders als die Java-Applets hat Jin den Vorteil, Partien direkt auf die lokale Festplatte abspeichern zu können. Dazu gibt man im Menü Preferences / Game Logger einen Dateinamen für den "Gamelogger" an, der von nun an sämtliche Partien in diese Datei speichert. Die Schachzüge liegen dort in der "Portable Game Notation" (PGN) vor, die alle Schach-Datenbanken verstehen.

Dies eröffnet die Möglichkeit, die Partien in ein Schach-Datenbankprogramm wie die "Chess Information Data Base" scid [14] einzulesen und dort zu analysieren. Hat man in scid eine Schach-Engine wie Crafty [16] integriert, kann das Programm die Partien automatisch auswerten und kommentieren.

Echte Linux-Clients

Sei es dem Ruf der Behäbigkeit wegen, der Java-Programmen anhaftet (im Falle von Jin zu Unrecht), sei es, weil der oft nötige Interpreter-Aufruf etwas mühselig ist – die meisten Linuxer bevorzugen fertig kompilierte C- oder C++-Programme. In dieser Kategorie trifft man zunächst auf den Urahn Xboard [8], dessen Bedienung schon allein deshalb recht gewöhnungsbedürftig ist, weil man die Größe des Programm-Fensters nicht mit der Maus verändern kann. Stattdessen legt man sie mit der Option -size beim Programmstart fest. Es gibt 18 verschiedene Werte für -size; bewährt haben sich small für ein 40x40 Pixel großes Brett, mediocre (45x45), average (54x54) und medium (64x64).

Während das Zeitkontrolle-Programm timeseal (Kasten 2) in Jin bereits integriert ist, nutzt Xboard es erst mit der Option -icshelper Pfad/zu/timeseal.Linux-i386. Zuvor macht man die von [13] heruntergeladene Datei ausführbar:

chmod u+x timeseal.Linux-i368

Zum Verbinden mit einem beliebigen ICS-kompatiblen Server dient der Kommandozeilenbefehl

xboard -size medium -colorize -ics -icshost jeu.echecs.com

Das Terminalfenster, in dem man Xboard aufgerufen hat, benötigt man im Weiteren zur Eingabe der Kommandos (Abbildung 5). Hier erscheinen auch die Meldungen des Servers und der anderen Benutzer. Das Pulldown-Menü des Programmfensters integriert einige FICS-Kommandos.

Xboard hat zwar sehr viele Funktionen, doch lassen sich die meisten nur über die Kommandozeile oder durch Einträge in der Datei ~/.Xdefaults einstellen. Passende Parameter pickt man sich aus der ausführlichen man- oder info-Seite heraus.

Xboard dient nicht nur als Schnittstelle zu Schach-Servern, sondern auch zu lokal installierten Schachprogrammen (auch Schach-Engines genannt). Mit der Option -fcp Schach-Engine kann man offline gegen eine Schach-Engine spielen. [15] listet viele davon auf; als spielstark gelten Crafty [16], Gnu Chess [17], Phalanx [18] und Sjeng [19].

Doch außer dem grafischen Schachbrett hat Xboard heutigen Ansprüchen gegenüber nicht mehr allzuviel zu bieten. Zu umständlich und nicht mehr ganz zeitgemäß ist die Bedienung, die zu einem großen Teil mittels Kommandozeilenparametern erfolgt.

Immerhin speichert das Programm, anders als ein Applet, Schachpartien auch auf der lokalen Festplatte ab. Außerdem funktioniert der Ton (bell), was wichtig ist, um bei knapper Bedenkzeit die Schachzüge des Gegners rechtzeitig zu bemerken.

Abbildung 5

Abbildung 5: Xboard 4.2.6 sieht ein wenig altbacken aus

Tip a friend    Druckansicht Bookmark and Share
Kommentare

1713 Hits
Wertung: 128 Punkte (9 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...