Thema: Vorstellung: Neuer Schachcomputer: CT800
Einzelnen Beitrag anzeigen
  #7  
Alt 26.08.2016, 23:07
Benutzerbild von Rasmus
Rasmus Rasmus ist offline
Mephisto London 68030
 
Registriert seit: 26.08.2016
Land:
Beiträge: 374
Abgegebene Danke: 165
Erhielt 445 Danke für 176 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
1/20 8/20
Heute Beiträge
0/3 ssssss374
AW: Neuer Schachcomputer: CT800

Features (das wurden irgendwie immer mehr?!):

- Zugeingabe:
Über die Tastatur; eingegeben wird Ausgangsfeld und Zielfeld des Zuges. Das wird, ebenso wie die Antwort des Computers, bei der angezeigten Zugliste dann noch in die lange algebraische Notation konvertiert. Diese Konvertierung gilt allerdings nur für das normale Spiel, nicht für die Analysestufe und die angezeigte Hauptvariante. Grund ist, daß die ausführliche Notation eben mehr Platz in der Anzeige kostet.

- Zeitkontrollen:
Zeit pro Zug (Sekunden): minimal, 5, 10, 20, 30, 60, 120, 180 (wahlweise hart, oder aber mit gelegentlichem Spielraum - jedoch nie mehr als das Dreifache der eingestellten Zeit, und bei Zeiten über 60s wird nur ein Zuschlag von maximal 60s gewährt)
Zeit pro Spiel (Minuten für jeden Spieler): 5, 10, 15, 20, 30, 45, 60, 90
Hierbei kann der Nutzer auch einen Faktor zwischen 1 und 4 einstellen, um den seine anfängliche Bedenkzeit erhöht wird. Man kann also z.B. mit 60 Minuten für den Menschen und 15 für den Computer spielen.
Turniermodi (Züge/Minuten+Minuten): 40/90+30, 40/120+30, 40/120+60, 40/120,20/60+30
Analysestufe: 9 Stunden pro Zug, unterbrechbar.
Fischerzuschlag (Sekunden): aus, 10s, 20s, 30s.
Spielerzuschlag (Sekunden): aus, 15s (für die Bedienung; unabhängig vom Fischerzuschlag).
- Bei den Zeitmodi "Zeit pro Spiel" und "Turnier" startet die Zeitberechnung erst nach dem ersten Halbzug von Weiß. Das vereinfacht z.B. Turniere.
- Nach Verlust durch Zeitüberschreitung kann die Partie im "Zeit pro Zug"-Modus weitergespielt werden.

- Wenn der Computer denkt, prüft er, ob sich der Start der nächsten Tiefen-Iteration überhaupt noch lohnt, also im Hinblick auf die verbleibende Bedenkzeit für seinen Zug. Wenn nicht, spart er sich die Zeit lieber. In den Zeitmodi "Zeit pro Spiel" und "Turnier" wird diese Zeit dann zusammen mit der Zeitersparnis aus dem Eröffnungsbuch für das Endspiel aufgehoben. Im entspannten "Zeit pro Zug"-Modus wird damit kompensiert, daß er gelegentlich auch mal das Dreifache der eingestellten Zeit denken kann.

- Analysestufe: angezeigt wird die Zugnummer der Partie, automatisch aktualisiert wird die Bewertung, die Suchtiefe, die Zeit bis zum aktuellen Startzug der Hauptvariante, die laufende Bedenkzeit und die Hauptvariante mit bis zu 8 Halbzügen. Allerdings ist die Stellungsbewertung nicht darauf getrimmt, eine Bewertung für den Menschen abzugeben, sondern um brauchbare Züge zu bekommen. Daher ist die Hauptvariante einigermaßen verläßlich (bezogen auf die verfügbare Spielstärke), aber die absolute Bewertung ist mit Vorsicht zu interpretieren. Außerdem ist die Bewertung in Teilen asymmetrisch, damit das Programm tendentiell Stellungen anstrebt, die ihm liegen.

- Farbwahl zu Beginn: Fest (Weiß/Schwarz), zufällig, zwei menschliche Spieler.
- Farbwechsel jederzeit möglich (bei Partien mit Zeitkontrollen unter Umschaltung nach "Zeit pro Zug").
- Man kann im Spiel auch zu "zwei menschliche Spieler" umschalten, um Züge einzugeben (in den Zeitmodi "Zeit pro Spiel" und "Turnier" kann man dann allerdings nicht mehr auf Computergegner zurückschalten - der Wechsel zu "Zeit pro Zug" wird aber automatisch vorgeschlagen).

- Dialoge, Menüaufrufe, Ansehen der Position usw. gehen nicht von der Bedenkzeit des Spielers ab.

- Position:
- Anschauen, Anschauen mit gedrehtem Brett, Materialliste. Dabei werden die obere und die untere Hälfte des Brettes nebeneinander angezeigt, was bei 4 Zeilen Display noch am meisten Übersicht bietet. Scrolling wäre eher schlechter.
- Eingabe: inkl. Vorgabe von Rochaderechten, sofern Rochaden denkbar wären, sowie der Angabe, welche Seite in der eingegebenen Position am Zug ist. Sofern nicht Spieler gegen Spieler eingestellt ist, übernimmt der Rechner dann zunächst die Seite, die nicht am Zug ist. Mit der "go"-Funktion kann er aber auch hier die Seiten wechseln. Das Eröffnungsbuch funktioniert auch für eingegebene Positionen, sofern die Rochaderechte entsprechend ausgewählt wurden. Allerdings geht dann die gesonderte Eröffnungsbehandlung nach Buchende nicht, was die Mobilitätswerte der Figuren betrifft.
- Partie-Notation: erreichbar über das Menü oder nach Partieende über den Positionsdialog. Gibt die Partie in algebraischer Notation wieder. Jeweils vier Halbzüge auf einmal werden mit Zugnummer angezeigt, man kann dann durchblättern. Das funktioniert auch für Partien, in denen Schwarz den ersten Zug hatte (eingegebene Position), dann wird der erste, fehlende Halbzug von Weiß wie in Büchern auch üblich mit "..." angezeigt.

- Anzeige von Stellungsbewertung und Hauptvariante (6 Halbzüge) über aufrufbare Dialogboxen. Die Rechentiefe wird dabei in Halbzügen angezeigt. Wenn die selektive Rechentiefe (Quiescence usw.) höher als der brute-force-Sockel ist, wird das im x/y-Format angezeigt - x Halbzüge brute force, y selektiv. Andernfalls wird die Rechentiefe nur als "x Halbzüge" angezeigt.

- Hat eine Seite einen deutlichen, aber nicht entscheidenden Vorteil (ab +/- 0.5 Bauerneinheiten), wird automatisch + bzw. - angezeigt, also in der Übersicht ohne extra Dialogbox. +, wenn der Rechner sich im Vorteil sieht, andernfalls -.
- Ein entscheidender Vorteil (ab +/- 3 Bauerneinheiten) wird mit ++ / -- angezeigt.
- Ein erzwingbares Matt wird mit +m bzw. -m angekündigt.
- Hat der Rechner seinen letzten Zug aus dem Eröffnungsbuch bezogen, wird 'b' angezeigt.
- Sieht der Rechner sich um mehr als 9.5 Bauerneinheiten im Nachteil, dann verkündet er seine Aufgabe per Dialogbox und bietet eine neue Partie an. Die Aufgabe kann aber abgelehnt werden, z.B. wenn man es bis zum Matt ausspielen möchte. Dann gibt er in dieser Partie nicht mehr auf.

- Man kann im Spiel auch zu "zwei menschliche Spieler" umschalten, um Züge einzugeben (in den Zeitmodi "Zeit pro Spiel" und "Turnier" kann man dann allerdings nicht mehr auf Computergegner zurückschalten - der Wechsel zu "Zeit pro Zug" wird aber automatisch vorgeschlagen).

- Verrauschte Stellungsbewertung: aus, leicht (+/- 0.10), mittel (+/- 0.30), stark (+/- 0.50) - jeweils in Bauerneinheiten. Um diesen Unsicherheitsbetrag wird die Bewertung verrauscht (nur im Mittelspiel, nicht im Endspiel). Je mehr Rauschen, desto mehr Abwechslung, aber mit negativen Auswirkungen auf die Spielstärke. Andererseits kann man damit die Spielstärke auch etwas drosseln.

- Undo/Redo: Über die gesamte Partie bei Zeitkontrolle "Zeit pro Zug" oder im Analysemodus, sonst 40 Halbzüge (die Bedenkzeiten bei Partien mit Zeitkontrolle werden dabei ebenfalls zurück- bzw. vorgebucht, inklusive eventuellem Fischer- und Spielerbonus).

- Eröffnungsbuch mit 17.000 Halbzügen in 9.000 Positionen. Zugumstellungen werden erkannt. Außerdem wird auch erkannt, wenn man mit Weiß logisch die schwarze Seite nimmt (mit einem Zug Tempoverlust). Manche Spieler tun das, um Computer aus dem Buch zu werfen und dennoch Eröffnungstheorie zu haben - das geht aber nicht, wenn der Computer den Trick auch kennt.
- Eröffnungsbuch abschaltbar (außer zum ersten Halbzug von Weiß, wegen der Zeitverwaltung).

- Jenseits des Eröffnungsbuches werden Stellungstypen mit geschlossenem oder blockiertem Zentrum (c-f) erkannt und möglichst vermieden. Quasi ein simpler anti-human-mode.

- Schnellantworten (gelten nicht für die Analysestufe). Sinn der Sache ist, Bedenkzeit zu sparen in den Zeitpartien und den Benutzer außerdem nicht mit unnötigem Herumgerechne zu nerven:
- Wenn es nur einen legalen Zug gibt, führt der Computer ihn ohne weitere Berechnung aus.
- Wenn der Computer sofort mattsetzen kann, macht er das auch.
- Wenn er im nächsten Zug zwangsläufig mattgesetzt wird, bricht er die Berechnung ab und zieht irgendeinen legalen Zug.
- Wenn es mehrere legale Züge gibt, aber davon nur einer verhindert, daß der Computer im nächsten Zug mattgesetzt wird, führt er den auch einfach aus.
- Die Stellungsbewertung ist dann entweder der vorherigen Hauptvariante entnommen, wenn der Spieler dementsprechend gezogen hat, oder ansonsten der flachen Vorsuche (3 Halbzüge), die zum Vorsortieren der Züge verwendet wird. Außer wenn es nur einen legalen Zug gab, aber der Spieler dabei nicht die Hauptvariante gezogen hat, dann gibt es keine Stellungsbewertung. Kurz gesagt wird die beste verfügbare Datenbasis herangezogen, die trotz der Schnellantwort vorhanden ist.

- Unterverwandlung geht, sowohl seitens des Computers wie auch des Spielers. Gibt man keine Wunschfigur bei der Umwandlung vor, wird automatisch eine Dame gewählt.

- Remis durch dreifache Stellungswiederholung ist implementiert, auch wenn die Stellung sich nicht aufeinanderfolgend wiederholt.
- Remis durch die 50-Züge-Regel ist implementiert. Außerdem wird die Stellungsbewertung nach 20 Vollzügen ohne Schlagzug oder Bauernzug graduell in Richtung Remis abgesenkt, damit das Programm diese Tendenz rechtzeitig erkennt, insbesondere in der Verteidigung. Gilt nicht für Endspiele ohne Bauern.

- Implementierte Endspiele:
- Mattführung gegen alleinstehenden König (mit König plus Dame, Turm, Läuferpaar oder Springer+Läufer).
- König plus Bauer gegen König (Endspieltabelle).
- Remis bei Randbauern und falschem Läufer, wenn der verteidigende König das Umwandlungsfeld beherrscht. Auch dann, wenn der Randbauer ein Mehrfachbauer (doppelt, dreifach, ...) ist.
- Remiserkennung bei König und zwei Springern gegen König.
- Hat eine Seite nur noch eine Leichtfigur, die andere aber noch Bauern, dann wird immer die Seite mit Bauern als vorteilhaft erkannt, auch wenn nach reinem Materialwert die Seite mit der Leichtfigur besser steht (z.B. K+L vs. K+2B).

- Konfiguration auch nach Batteriewechsel verfügbar.

- Die laufende Partie kann man über das Menü speichern, so daß sie nach einem Batteriewechsel zu laden geht (inklusive der Zeiten bei Partien mit Zeitkontrolle). Es kann aus Speicherplatzgründen nur ein Spielstand gespeichert werden.
- Nach jedem Zug wird die Partie automatisch gespeichert. Das gilt nicht, wenn eine Partie manuell gespeichert wurde, die hat dann Vorrang. Es gilt außerdem nicht nach dem ersten Zug von Weiß, falls dieser direkt (also ohne Go-Taste) durch den Computer ausgeführt wurde und aus der Grundstellung heraus stattfindet. Andernfalls käme man nämlich nach einem Stromausfall nicht mehr ins Menü zum Laden der vorigen Partie, wenn konfiguriert ist, daß der Computer Weiß hat, oder bei zufälliger Farbverteilung, wenn er zufällig Weiß bekommt.
- Eine manuell gespeicherte Partie läßt sich per Löschfunktion entfernen, wodurch automatisches Speichern wieder aktiviert wird.

- Watchdog: sollte es zu einer Endlosschleife oder sonstigem "Aufhängen" kommen, wird automatisch neu gebootet.

- RAM/ROM-Test, externer Quarz, Tastatur: Wird beim Hochfahren automatisch geprüft. Ist das Ergebnis nicht OK, gibt's eine Hinweis-Dialogbox, aber keine Abschaltung. Selbst mit nicht bestücktem externen Quarz läuft das Gerät nahezu normal, abgesehen von etwas ungenauerer Zeit.

- Turbomodus: Statt der regulären 168MHz wird die Taktfrequenz auf 200MHz erhöht, während der Computer rechnet. Der Unterschied in der Taktfrequenz beträgt 19%, allerdings ist die Beschleunigung netto (nachgemessen) nur 13%. Per Default abgeschaltet, weil jenseits der Systemspezifikation.

- Displaykontrast über das Menü einstellbar (wird abgespeichert).

- Die Displaybeleuchtung kann man konfigurieren: immer aus, immer an oder automatisch. In letzterem Fall ist das Licht 15s lang aktiviert, wenn man eine Taste drückt oder wenn der Computer seinen Zug macht. Im Analysemodus löst eine neue Rechentiefe 30s lang die Beleuchtung aus. Außerdem gibt es einen extra Lichttaster, mit dem das Licht immer für 30s angeht, auch während der Computer rechnet. Eine Ausnahme ist hier der Zustand mit bereits schwächelnden Batterien, dann geht das Licht gar nicht mehr.

- Piepser kann per Konfiguration abgeschaltet werden, emuliert auch einen Tastaturklick.

- Batteriespannung wird überwacht, damit die Akkus nicht beschädigt werden (NiMH sind da empfindlich):
- Eine Dialogbox informiert über die nachlassende Spannung (bei 1.1V pro Zelle).
- Im Display wird bei nachlassender Spannung "BAT" angezeigt.
- Droht Tiefentladung (bei 1.0V), gibt's eine Dialogbox, die zum Abschalten des Gerätes auffordert. Das System fährt sich dann selber runter und kann nur mit einem Ausschalten/Anschalten-Zyklus gestartet werden.
- Nach dem Einschalten und vor jeder neuen Partie wird die Taktfrequenz maximiert, um die Batterien zu testen. Bei weniger als 1.15V pro Zelle ist keine neue Partie möglich (reicht eh nicht mehr), und das Gerät fordert zum Ausschalten auf.
- Der Turbomodus wird bei schwächelnden Batterien ignoriert, und das Licht geht auch nicht mehr.
- Verpolung beim Batterieeinlegen wird per Hardware abgefangen (folgenlos).
- Überspannung wird per Schmelzsicherung abgewendet.
- Die beiden Stromversorgungen (Netzadapter und Batterie) sind separat abgesichert.

Und das Besondere: freie Software. Deswegen stehen die komplette Software, die Tools und das Eröffnungsbuch unter der GNU General Public License (GPL) Version 3 oder höher. Es gibt hier nicht so etwas wie "geistiges Eigentum" in dem Sinne, daß es etwas zu Bewachendes darstellt, sondern in dem Sinne, daß es etwas zu Teilendes ist. Mit der Schachcomputer-Definition von oben dürfte dies einer der stärkeren Schachcomputer mit freier Software sein.

Man kann das Programm auch am PC weiterentwickeln (GCC-x86 unter GNU/Linux oder Windows mit Cygwin), weil die Unterschiede sich, was die Quelltexte angeht, auf eine hardware-abhängige Datei konzentrieren (plus der ARM-Lowlevel-Treiber), während der ganze Rest der Applikation davon unabhängig ist.

Man kann das natürlich auch auf andere Controller portieren; allerdings wäre das einiges an Arbeit, weil ich keine Lowlevel-Bibliotheken benutzt habe. Das funktioniert mit direkten Registerzugriffen nach Datenblatt, also in den ARM-spezifischen Abschnitten. Ich wollte die Geschwindigkeit halt nicht mit einer generischen Bibliothek verheizen. Es gibt auch kein Betriebssystem, kein Threading, kein Dateisystem - nichtmal die C-Standardbibliothek.

Eigentlich wär's ganz cool, wenn sich ein Hersteller fände, der Lust hätte, so ein Brikett in Serie zu bauen. Muß ich mal schauen. Kommerzielle Nutzung ist lizenzmäßig unbedenklich und ebenso kostenlos wie private. Ein kleiner Haken daran ist allerdings, daß es sich um freie Software handelt, d.h. die exklusive Lizensierung der Software ist ausgeschlossen. Es gibt ausschließlich GPLv3+, mitsamt der Verpflichtung zur Aushändigung der Quelltexte an die Käufer. Andererseits ist das ja bei den ganzen GNU/Linux-Rechnern mit Stockfish augenscheinlich auch kein Problem.

In der Version, die ich hier habe, wird das allerdings niemals in Serie gebaut werden - alleine die Tasten belaufen sich im Materialwert auf über 400 EUR, weil es Piezoschalter sind, die eigentlich für wassergeschützte Geräte gedacht sind. Aber die sind cool. ^^ Man kann aber auch eine Matrix-Tastatur anschließen, die Software ist genau darauf ausgelegt. Die einzelnen Schalter habe ich selber sowieso mit einer kleinen Platine so zusammengelötet, wie es einer Matrix-Tastatur entspricht.
Mit Zitat antworten
Folgende 6 Benutzer sagen Danke zu Rasmus für den nützlichen Beitrag:
Boris (03.02.2021), Chessguru (27.08.2016), Mapi (27.08.2016), pato4sen (16.10.2016), RetroComp (26.08.2016), RolandLangfeld (27.08.2016)