Das grosse Computerschachbuch
Das grosse Computerschachbuch | |||
---|---|---|---|
Sprache | deutsch | ||
Autor(en) | Rainer Bartel, H. J. Kraas, Günther Schrüfer | ||
Verlag | Data Becker | ||
Jahr | 1985 | ||
ISBN | ISBN 3-89011-117-3 | ||
Neupreis | DM 49.- | ||
Datenträger | Diskette bestellbar DM 39,- | ||
Seitenzahl | 458, 2 Seiten Verlagwerbung, 1 Bestellkarte | ||
letzte Auflage | 1., unveränderte Auflage 1985 | ||
Genre | Brettspiel Schach | ||
Information |
Beschreibung[Bearbeiten | Quelltext bearbeiten]
Anliegen der Autoren war es nicht, ein Programm vorzustellen, das auf höchstem Niveau spielt, sondern grundlegende Einblicke in den Aufbau eines Schachprogramms zu geben und dessen wichtigste Teile und deren Programmstrukturen anschaulich zu erläutern.
Das im Buch enthaltene Programm DEMOSCHACH wurde ursprünglich auf einem Commodore SX64 geschrieben und mit Basic 64 kompiliert.
Aus dem Klappentext der Buchrückseite:
Wie funktioniert eigentlich ein Schachprogramm? Die wenigsten wissen, mit welchen Algorithmen man dem Computer das königliche Spiel beibringen kann. Dieses Buch informiert über alle Aspekte der Schachprogrammierung und enthält ein komplettes Schachprogramm in BASIC, das auf anschauliche Weise die Probleme der Programmierung und ihre Lösungen darstellt. Abgerundet wird das Buch durch eine kleine Geschichte des Computerschach und eine Menge Tips zum Thema: Wie spielt man Schach gegen den Computer?
UND GESCHRIEBEN HABEN DIESES BUCH:
Rainer Bartel ist Fachjournalist und kam über das Thema Schachcomputer zur EDV; er hat sich darauf spezialisiert, Schachprogramme zu testen und gegen sie zu gewinnen. Hans-Joachim Kraas ist Informatiker und aktiver Schachspieler. Sein Spezialgebiet sind die Bewertungsfunktionen, die letztlich über die Spielstärke eines Programmes entscheiden. Zusammen mit Günther Schrüfer, ebenfalls Informatiker und aktiver Schachspieler, hat er das Großrechner-Schachprogramm BOBBY entwickelt, das mit beachtlichen Partien an der Computerschachweltmeisterschaft 1983 in New York teilnahm. Günther Schrüfer ist einer der besten Kenner der Algorithmen von Schachprogrammen.
Leseprobe[Bearbeiten | Quelltext bearbeiten]
3.3.3 Eindimensionale eingebettete Brettdarstellung
Hier benutzen wir die Technik der Einbettung. Wir codieren nicht das Brett, sondern ein erweitertes, um zwei Reihen nach jeder Seite vergrößertes Brett. Dem Feld A1 entspricht der Index 27, H1 der Index 34 und H8 der Index 118.
Diagramm der eindimensionalen eingebetteten Brettdarstellung
Die Zahlen geben die Indices der Felder an;
z.B. hat das Feld H8 den Index 118
Zu Programmbeginn wird den Feldern, die nicht zum Brett gehören, ein eindeutiger Wert (14) zugewiesen, der nie verändert wird und sie als unbegehbar ausweist. Damit ist das Problem der Randerkennung gelöst. Die Damenzüge nach rechts oben können nun so generiert werden:
100 REM DAMENZUEGE NACH RECHTS OBEN
110 REM STANDORT IST S
120 Z=S: REM ZIELFELD
130 Z=Z+13: REM 13 IST NUN DIE SCHRITTWEITE
140 IF BR(Z)=14 THEN GOTO 170: REM UEBER RAND GELAUFEN ?
149 REM FREIES FELD?
150 IF BR(Z)=7 THEN "ZUG EINTRAGEN": GOTO 130
160 IF BR(Z) "IST GEGNERISCHE FIGUR" THEN SCHLAGZUG EINTRAGEN"
170 REM FERTIG
Dies ist offensichtlich die geschickteste Art, Züge zu generieren. Auch bei Springerzügen landen wir immer auf dem erweiterten Brett, da wir es in jeder Richtung um 2 Felder vergrößert haben.
Inhaltsverzeichnis[Bearbeiten | Quelltext bearbeiten]
1. Wie kam Schach auf die Maschine - Geschichte des Computerschach .......................... 5
1.1 Die ersten Schachmaschinen ............................... 6 1.2 Theoretiker............................................... 9 1.3 Die Ära der Großrechner ................................. 17 1.4 Superriesen......... .................................... 36 1.5 Aufstand der Mikros ..................................... 46
2. Wie lernt der Computer gewinnen - Theorie der Strategiespiele ........................... 57
2.1 Die Spieldarstellung .................................... 58 2.2 Die Spielregeln ......................................... 60 2.3 Das Entscheidungsverfahren .............................. 64
3. Immer auf dem Laufenden - Suchstrategie und Spielbaum ........................... 85
3.1 Programmieren - Kunst und Technik ....................... 85 3.1.1 Programmentwicklung ..................................... 85 3.1.2 Programmorganisation .................................... 86 3.1.3 Der Stack ............................................... 87 3.1.4 Besonderheiten von BASIC ................................ 97
3.2 Aufbau eines Schachprogrammes ........................... 99 3.2.1 Die Bestandteile ........................................ 99 3.2.2 Die Abhängigkeiten ..................................... 100 3.2.3 Das Grundkonzept ....................................... 101
3.3 Der Zuggenerator ....................................... 103 3.3.1 Zweidimensionale Brettdarstellung ...................... 104 3.3.2 Eindimensionale kompakte Brettdarstellung .............. 106 3.3.3 Eindimensionale eingebettete Brettdarstellung .......... 107 3.3.4 Der Zuggenerator im Ganzen ............................. 108
3.4 Suchen und Entscheiden ................................. 109 3.4.1 Die Bewertungsfunktion ................................. 110 3.4.2 Die Minimax-Suche ...................................... 112 3.4.3 Der Alpha-Beta-Algorithmus ............................. 120 3.4.4 Die Ruhesuche .......................................... 129 3.4.5 Schach, Matt, Patt und die Ruhesuche ................... 139 3.4.6 Variable Suchtiefe ..................................... 149 3.4.7 Die iterative Suche .................................... 152 3.4.8 Zugselektion und Zugsortierung ......................... 164
3.5 Die Stellungsbewertung ................................. 170 3.5.1 Einleitung ............................................. 170 3.5.2 Die Materialbewertung .................................. 175 3.5.3 Die positionelle Bewertung ............................. 189
3.6 Hilfsroutinen........................................... 261
3.7 Ein-Ausgabe-Routinen.................................... 263
3.8 Die Partieverwaltung ................................... 264 3.8.1 Die Stellungseingabe ................................... 265 3.8.2 Die Partieschleife ..................................... 267
4. Das Programm ........................................... 269
4.1 Die Datenstrukturen und Moduln im Überblick ............ 270
4.2 Die grundlegenden Datenstrukturen ...................... 272 4.2.1 Stellungsdarstellung ................................... 272 4.2.2 Zugdarstellung ......................................... 281 4.2.3 Die Zuglisten ............ ............................. 282
4.3 Deklarationen .......................................... 284
4.4 Initialisieren und Einlesen der Partiestellung ..........287
4.5 Der Zuggenerator........................................ 292
4.6 Die Bewertungsfunktion ................................. 300 4.6.1 Die Steuerung des Ablaufes ............................. 301 4.6.2 Die Stellungsanalyse ................................... 306 4.6.3 Die Bauernbewegung ..................................... 308 4.6.4 Die Figurenbewertung ................................... 312 4.6.5 Die Königsbewertung .................................... 316 4.6.6 Die Matt-Routinen ...................................... 322
4.7. Das Vertiefen von Zügen und der Stack .................. 324
4.8 Allgemeine Hilfsroutinen ............................... 330
4.9 Die Suche und spezifische Hilfsroutinen ................ 333 4.9.1 Die Hilfsroutinen ...................................... 334 4.9.2 Die Suche .............................................. 340
4.10 Partieschleife und Zugeingabe .......................... 346
4.11 Ausgaberoutinen........ ................................ 351
4.12 Variablen-Referenzliste ................................ 352
5. So spielt man Schach gegen Computer .................... 359
5.1 Testen Sie Ihr Schachprogramm .......................... 360 5.1.1 Welche Strategie? ...................................... 361 5.1.2 Initiativtest .......................................... 364 5.1.3 Eröffnungsbibliothek ................................... 367 5.l.4 Positionelle Stärken und Schwächen ..................... 373 5.1.5 Rechentiefe............................................. 378 5.1.6 Permanent Brain ........................................ 384 5.1.7 König-Turm-Endspiel .................................... 386 5.1.8 Unterverwandlungen ..................................... 389
5.2 So schlagen Sie ein Schachprogramm - 7 goldene Regeln zum Gewinnen .......................... 390 5.2.1 Ungewöhnliche Eröffnungen .............................. 393 5.2.2 Gambit spielen ......................................... 397 5.2.3 Keine taktischen Verwicklungen - Abtausch provozieren ................................. 404 5.2.4 Fallen stellen ......................................... 406 5.2.5 Bei Vorteil Endspiel anstreben - Endspiel planvoll behandeln .......................... 416 5.2.6 Was haben Sie davon? ................................... 421
6. Anhang ................................................. 423
6.1 Verzeichnis der erwähnten Programme und Schachcomputer ..................................... 423 6.2 Literaturverzeichnis ................................... 424 6.3 Komplettes Listing: DEMOSCHACH ......................... 428
Bestellkarte[Bearbeiten | Quelltext bearbeiten]
Meinung[Bearbeiten | Quelltext bearbeiten]
Petrus: "Ein beispielhaft ausführliches Buch zum Thema Computerschach. Man muss schon ein wenig vom Schach verstehen und bereit sein, eine Menge Zeit für das Studium des Buches zu investieren. Dass die Beispiele ausgerechnet in BASIC V2 geschrieben sind, freut den C64-BASIC-Fan natürlich (andere sicher weniger)."
Weblinks[Bearbeiten | Quelltext bearbeiten]
Katalog der Deutschen Nationalbibliothek: 3-89011-117-3
- Das Grosse Computerschachbuch im Internet Archiv
- Günther Schrüfer und Hans-Joachim Kraas im Chess Programming Wiki