CACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactus U U S CHESS S E ***** E R Übersetzt 7/89 von C.A.C.T.U.S. (Guido Coenen) R S S cactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUS ******************************************************************** ** ** ** Chess 2.0 - Copyright (c) 1989 A.H.W. Kaufmann ** ** ** ******************************************************************** BENÖTIGTE DATEIEN ================= Chess Chess.Doc Chess.Openings Chess.Pieces Chess.Colours Chess.info Games (Unterverzeichnis) KURZANLEITUNG ============= Formatiere eine Diskette mit dem Namen "Chess" und verstaue die genannten Dateien in Verzeichnis "GAMES" auf dieser Diskette. Du kannst auch die Dateien in ein beliebiges Verzeichnis kopieren, wenn Du vor dem Aufruf von Chess mit "CD" in dieses Verzeichnis umschaltest. Anschließend kannst Du das programm mit dem Befehl "Run Chess" im CLI starten oder auch das Icon des Programmes von der Workbench aus anklicken. Zum Bewegen der Schachfiguren drückst Du die linke Maustaste auf Anfangs- und Endpunkt des gewünschten Zuges. Mehr findest Du heraus, wenn Du mit der rechten Maustaste die Menüs anschaust. VERTRIEB UND BENUTZUNGSBEDINGUNGEN ================================== Dieses Programm darf gratis vertrieben werden, vorausgesetzt, es werden dabei keine Auflagen gemacht. Nominelle Kopiergebühren oder Mailbox- gebühren sind erlaubt. Die Benutzung dieses Programmes darf unentgeltlich geschehen, aber Du solltest Dich verpflichtet fühlen, Fehlerbeschreibungen zu schicken, falls Du einen (oder mehrere) findest. Falls Dir das Programm gefällt, würde es mir auch nichts ausmachen, Vorschläge und Kommentare für zukünftige Verbesserungen zu erhalten. Alfred H.W. Kaufmann 124 Silversprings Rise N.W., Calgary, Alberta Canada T3B 3Z6 DANKSAGUNG ========== John Stanback: Für das Schachprogramm. Bob Leivian: Für die Original-Amiga-Umsetzung. Peter da Silva ) Matt Dillon ) Jeff Lydiat ) Für die Dateiauswahlbox. Jay Miner ) R.J. Mical ) Bruce Dawson ) John Russell ) Mike Ballantyne ) Für den Farbeinsteller. R. French ) R.J. Mical ) Fred Fish: Für den Vertrieb großartiger Programme und Utilities. Lattice Inc: Für den Collegeversuch mit C5.02 und CodePRobe. Commodore-Amiga: Für die Herstellung eines derart guten Rechners. "SPEZIELLER DANK" ================= Lattice Inc.: Für die rastlose Entwicklungsarbeit, die immer neuere und bessere Programmfehler erzeugt. Commodore-Amiga: Für das fehlerhafte SETPATCH. *********************** * * * Die Feinheiten * * * *********************** Die Dateien =========== Chess Das Spiel. Chess.info Das Icon zum Programm. Sollte vielleicht noch etwas bearbeitet werden; ich habe keine künstlerischen Ambitionen. Chess.Doc Die Datei, die Du gerade liest. Chess.Pieces Diese Datei enthält die Bilder der Schach- figuren. Außerdem sind hier wichtige Informationen, die es Dir erlauben, das Aussehen zu ändern. Wenn Du sie nicht magst, schnapp Dir Zeichenpapier und entwerfe Deine eigenen! Chess.Opening Die Standard-Eröffnungsbibliothek. Du kannst diese Bibliothek beliebig ändern. Zur Zeit bist Du dabei auf 80 Eröffnungen beschränkt und mußt dafür sorgen, daß die Züge in Spalte1 und 7 beginnen. Chess.Colours Diese Datei legt die Farben fest. Du kannst die Datei innerhalb des Schachprogrammes nach Deinem Geschmack verändern. Games Hier handelt es sich um ein Verzeoichnis, in dem normalerweise alle Spiele abgespei- chert werden. Zur Zeit sollten bereits ein paar Dateien darin enthalten sein, die Du vom Schachprogramm aus laden kannst. Die mit "B" beginnenden Spiele bedeuten, daß Schwarz den nächsten Zug hat; bei "W" als Anfangsbuchstabe fährt Weiß als erster fort. Beste Ergebnisse erhältst Du, wenn Du den Timer auf 1.800 Sekunden stellst. Die Menüs ========= Load Game Nach Anwahl dieses Menüpunktes erscheint eine Dateiauswahlbox. Hast Du den gewünschten Spielstand ausgewählt, bewegst Du den Mauszeiger auf den ACCEPT-Schalter und drückst die linke Maustaste. Save Game Hier erscheint dieselbe Dateiauswahlbox, in der Du den Namen angeben kannst, unter dem der aktuelle Spielstand gespeichert wird. Set Board Hiermit kannst Du einen beliebigen Spielstand erstellen. Im Abfragefenster, das jetzt erscheint, ist auch ein HELP-Schalter benutzbar, der Dir die Handhabung dieses Menüpunktes erklärt. Hast Du den Spielstand aufgebaut, klickst Du mit der linken Maustaste einmal auf den OK-Schalter. List Moves Sind bereits Züge gemacht worden, erscheinen diese im Ausgabefenster. Ansonsten erscheint wieder die Dateiauswahlbox, in der Du eine datei auswählen kannst. Colours Damit erscheint ein Farbeinstellmenü, in dem Du beliebige Farben auswählen kannst. Um sie dauerhaft abzuspeichern, klickst Du einmal auf den SAVE- Schalter mit der linken Maustaste. Read Docs Mit diesem Menüpunkt kannst Du diesen Text lesen. Die Anleitung kann kierbei auch auf dem Drucker ausgegeben werden. Quit Mit diesem Menüpunkt oder dem Schließschalter in der linken oberen Bildschirmecke beendest Du das Programm. Bist Du mitten im Spiel, solltest Du es vielleicht vorher abspeichern... Switch Sides Hattest Du zuvor Schwarz, bekommst Du nun Weiß, und umgekehrt. Reverse Board Das Brett wird umgedreht. Set Time Limit Es erscheint ein Eingabefenster, in dem Du die maximale Zeit für einen Zug einstellen kannst. Benutze zur Einstellung die BACKSPACE-Taste. Skip Move Nach dem Seitenwechsel könnte das nützlich sein, einen Zug zu überspringen. Undo Move Wenn möglich, wird der letzte Zug zurückgenommen, falls nicht der Menüpunkt Set Board dazu benutzt wird. Hint Gibt einen Zugvorschlag. Credits Zeigt ein paar Informationen zum Programm. Das Spiel ========= Das Programm stammt aus einer Usenet-Mitteilung von John Stanback, HP, Colorado Integrated Circuits Div., Loveland, CO. Das Programm spielt ein sehr beachtliches Schach, obwohl es natürlich nicht mit einem aktuellen kommerziellen Programm verglichen werden kann. Die Suchrate beträgt 100-300 nodes/Sek. auf einem HP Vectra (8 Mhz. 286) und 300-900 nodes/Sek. auf einem HP 350 (25 Mhz. 68020). Mich würde einmal die Geschwindigkeit des Programmes auf anderen Rechnern interessieren. Mich würden ebenfalls Mitteilungen über Spielstärke, Scwächen oder Programmfehler sowie Verbesserungsvorschläge interessieren. Hier ein paar Erläuterungen: 1. Eröffnungsbibliothek Ich bin ein armseliger Schachspieler und habe keine Ahnung von Eröffnungen. Deshalb habe ich einfach 70-80 zufällige Spielzüge in die Datei Chess.Opn kopiert. Ich glaube, es sind ein paar Fehler in der Übertragung. Bitte laß es mich wissen, falls Du eine bessere Bibliothek angelegt hast. 2. Positionsbewertung Ich glaube, ein wenig Verbesserung in diesem Bereich täte dem Programm ganz gut. In den meisten Situation erkennt der rechner nicht, was ihn weiterbringenkönnte, und wählt seine Züge nur nach Positionsaspekten. Ich habe mit der Bewertung nicht allzu viel Zeit verbracht und oft weiß das Programm deshalb nicht, was vor sich geht und wie es weiter geht. Vielleicht würde es helfen, die Werte der aktuellen Bewertung zu ändern. Eine größere Verbesserung ist aber wohl nur mit etwas mehr Schachkenntnis möglich. 3. Suchalgorithmus Das Programm benutzt eine auf das ganze Feld bezogene Alpha-beta- Suchtechnik mit besonderem Augenmerk auf Schach, Schachgefahr und Bauerntausc . Das Schlagen gegnerischer Figuren wird von einer separaten Suchfunktion überwacht. Ich kann mir denken, daß es viel effizientere Suchroutinen gibt und wäre sehr daran interessiert, etwas darüber in Erfahrung zu bringen. Verbesserung der Suchbewertungen (ähnlich den Bewertungen beim Bauerntausch) könnten das Programm stark verbessern. 4. Zugerzeugung Es gibt wahrschinlich bessere Möglichkeiten dazu, aber sie würden die Datenstruktur grundlegend verändern und ein komplettes Neuschreiben des Programmes notwendig machen. Vielleicht beschleunigen ein paar gute Programmierer das Programm noch. Die sollten am besten mit der Ataks-Funktion anfangen. Zukünftige Verbesserungen ========================= Bei genügendem Interesse an diesem Schachprogramm würde ich das Programm gerne beschleunigen. Das könnte zunächst ziemlich unkompliziert geschehen, indem einfach die Menge automatischer Variablen und Arrays reduziert würde, indem Registerparameter für den Aufriuf von Unterroutinen benutzt werden und indem die Stacküberprüfung unterbleibt. Ich würde ebenfalls die Setboard-Funktion überarbeiten, so daß man die Figuren einfach per Maus plazieren kann statt e2wp oder ähnliches eingeben muß. Fehler ====== Zur Zeit sind mir keine bekannt. Ich benutze einen neuen Compiler, Lattice C 5.02 und habe bereits ein paar Probleme überwunden, vielleicht gibt es aber nocht weitere! Macht mal ein paar Vorschläge! ******************************