A Chess-Playing Program for the 9810A: Unterschied zwischen den Versionen

aus Schachcomputer.info Wiki, der freien Schachcomputer-Wissensdatenbank
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 28: Zeile 28:
<br><br>
<br><br>
Die Züge werden über die Register x und y eingegeben. Für 1. e4 (wenn der Spieler weiß spielt) ist folgende Eingabe erforderlich:
Die Züge werden über die Register x und y eingegeben. Für 1. e4 (wenn der Spieler weiß spielt) ist folgende Eingabe erforderlich:
2 Up 5 Continue
2 <Pfeiltaste nach oben> 5 (die y-Koordinate 2 wird in den Register y gespeichert, die x-Koordinate E=5 in den Register x) 
4 Up 5  
<br><br>
<br><br>
[[File:HP9810A3.jpg|400px]]
[[File:HP9810A3.jpg|400px]]
<br><br>
<br><br>
Continue
Continue
<br><br>
[[File:HP9810A4.jpg|400px]]
[[File:HP9810A4.jpg|400px]]
<br><br>
4 Up 5 Continue.<br>
Der Computer antwortet mit seinem Gegenzug 1. ... e5:<br><br>
[[File:HP9810A5.jpg|400px]] Continue [[File:HP9810A6.jpg|400px]]<br><br>
Der Aufbau des Programms funktioniert grob umrissen wie folgt:
Jedem der 64 Felder, die über 64 Register des HP9810A interpretiert werden, wird nicht nur eine ganze Zahl zugewiesen, sondern eine Dezimalzahl der Gestalt A.BCDDDDEEEE.
Dabei steht A für die Figurenbezeichnung (siehe Graphik oben), B für die Anzahl der eigenen Figuren, die dieses Feld erreichen können, C für die Anzahl der gegnerischen Figuren, die dieses Feld erreichen können, DDDD für die Summe der Werte der eigenen Figuren, die das Feld erreichen können und EEEE für die Summe der Werte der gegnerischen Figuren, die das Feld erreichen können.<br>
Zum Beispiel bedeutet Register 9=-1.0100000500, dass auf A2 ein Bauer des Spielers steht, der von einer eigenen Figur erreicht werden kann. Der Wert der Figur ist 500.
Die Werte der Figuren werden wie folgt definiert:
Bauer = 100
Springer = Läufer = 300
Turm = 500
Dame = 900
König = 1200
Der Code arbeitet nach dem Schema:
Scanne das Brett nach Figuren.
Wenn eine eigene gefunden wurde, prüfe mögliche Züge.
Wenn ein möglicher Zug gefunden wurde, evaluiere die Position.
Durchsuche das Brett nochmals nach Figuren und prüfe, wo diese hinziehen können, nachdem der eigene Zug ausgeführt wurde.
Anhand obiger Tabelle wird dem Zug dann eine Bewertung zugewiesen, wobei über die Funktion N/[(4.5-x)^2+(4.5-y)^2] (N=Anzahl der Figuren, die das Feld erreichen, x und y = Koordinaten) die Felder zusätzlich unterschiedlich gewichtet werden. Die Funktion stellt sicher, dass Felder in der Mitte wertvoller sind.





Version vom 13. April 2020, 14:32 Uhr

Im Jahr 1974 veröffentlichte Alan Wray im Keyboard Magazin von Hewlett-Packard Vol. 6 No. 4 den Artikel "A Chess-Playing Program for the 9810A". Darin beschrieb er ein Programm für den HP 9810A, das Schach spielen konnte. Dieses Programm wurde im US Patent 4235442 von Ron Nelson als Hilfsmittel für die Programmierung Evaluierungsfunktion des Fidelity Chess Challengers (CC1) genannt und legte somit einen der Grundsteine für die Entwicklung von Schachcomputern.

Das Programm kann zum Beispiel über Emulatoren des HP 9810A zum Laufen gebracht werden.



Über die Taste Load kann das zuvor abgespeicherte Programm geladen werden. Durch zweimaliges Drücken von Continue fragt der Computer nach der Startposition. Diese muss zuvor erstellt worden sein. Das Schachbrett wird über die Register 1-64 dargestellt, d.h. A1=Register 1, A2= Register 9 usw. Die Figuren erhalten eine Codierung, wobei positive Zahlen für die Figuren des Computers, negative für jene des Spielers stehen.

4 2 3 5 6 3 2 4
1 1 1 1 1 1 1 1
...
-1-1-1-1-1-1-1-1
-4-2-3-5-6-3-2-4

Will der Spieler Schwarz spielen, so ist dies durch Vertauschen von Dame und König in der Grundstellung anzuzeigen. Erkennt der Computer folgende Grundstellung,

4 2 3 6 5 3 2 4
1 1 1 1 1 1 1 1
...
-1-1-1-1-1-1-1-1
-4-2-3-6-5-3-2-4

so wird der Register 1 als H8 interpretiert und der Computer eröffnet mit seinen weißen Steinen aus den Registern 49-64.

Lädt man die Position für Spieler spielt weiß, zeigt die Anzeige:



Die Züge werden über die Register x und y eingegeben. Für 1. e4 (wenn der Spieler weiß spielt) ist folgende Eingabe erforderlich: 2 <Pfeiltaste nach oben> 5 (die y-Koordinate 2 wird in den Register y gespeichert, die x-Koordinate E=5 in den Register x)



Continue



4 Up 5 Continue.
Der Computer antwortet mit seinem Gegenzug 1. ... e5:

Continue

Der Aufbau des Programms funktioniert grob umrissen wie folgt: Jedem der 64 Felder, die über 64 Register des HP9810A interpretiert werden, wird nicht nur eine ganze Zahl zugewiesen, sondern eine Dezimalzahl der Gestalt A.BCDDDDEEEE. Dabei steht A für die Figurenbezeichnung (siehe Graphik oben), B für die Anzahl der eigenen Figuren, die dieses Feld erreichen können, C für die Anzahl der gegnerischen Figuren, die dieses Feld erreichen können, DDDD für die Summe der Werte der eigenen Figuren, die das Feld erreichen können und EEEE für die Summe der Werte der gegnerischen Figuren, die das Feld erreichen können.
Zum Beispiel bedeutet Register 9=-1.0100000500, dass auf A2 ein Bauer des Spielers steht, der von einer eigenen Figur erreicht werden kann. Der Wert der Figur ist 500. Die Werte der Figuren werden wie folgt definiert: Bauer = 100 Springer = Läufer = 300 Turm = 500 Dame = 900 König = 1200

Der Code arbeitet nach dem Schema: Scanne das Brett nach Figuren. Wenn eine eigene gefunden wurde, prüfe mögliche Züge. Wenn ein möglicher Zug gefunden wurde, evaluiere die Position. Durchsuche das Brett nochmals nach Figuren und prüfe, wo diese hinziehen können, nachdem der eigene Zug ausgeführt wurde.

Anhand obiger Tabelle wird dem Zug dann eine Bewertung zugewiesen, wobei über die Funktion N/[(4.5-x)^2+(4.5-y)^2] (N=Anzahl der Figuren, die das Feld erreichen, x und y = Koordinaten) die Felder zusätzlich unterschiedlich gewichtet werden. Die Funktion stellt sicher, dass Felder in der Mitte wertvoller sind.


Weblinks