Thema: News: DGT Pi Schachcomputer
Einzelnen Beitrag anzeigen
  #617  
Alt 30.06.2020, 01:47
Beeco76 Beeco76 ist offline
Mephisto Montreux
 
Registriert seit: 23.03.2020
Beiträge: 254
Abgegebene Danke: 1.313
Erhielt 409 Danke für 179 Beiträge
Aktivitäten Langlebigkeit
0/20 5/20
Heute Beiträge
0/3 ssssss254
AW: DGT Pi Schachcomputer

Hallo zusammen,

 Zitat von Mythbuster Beitrag anzeigen
Zur Sache: Es mag ja alles sein, wie es ist ... meine Beispiele zeigen aber, dass zum Beispiel die Engine des Vancouver sich auf dem Pi anders verhält als im Computer, wo sie selbst bestimmen kann. Darum das nachvollziehbare Beispiel.

Und offenbar sind da ja auch andere Programmierer "weiter", wie man an Hiarcs, Fritz, Shredder und Co sehen kann.

Es mag sein, dass es in "eurer UCI Welt" anders läuft ... aber deswegen ist es nicht zwingend richtig oder gar besser ...
Zum Thema UCI und "Engine kann Bedenkzeit selbst bestimmen":

So, wie ich das UCI-Protokoll verstanden habe, muss das kein Widerspruch sein.

Man kann meines Wissens mehrere Möglichkeiten benutzen:

1. "movetime" mit einer festen Bedenkzeit

Hat so weit ich weiß so gut wie jede UCI-Engine.

2. Die GUI sagt der Engine Bescheid, wie viel Zeit auf den Uhren ist, das sieht dann z.B. so aus:

Code:
// GUI: Hallo, ich will ein neues Spiel spielen
ucinewgame

// GUI: Position und Halbzug
position startpos moves e2e4

// GUI: Liebe Engine, hier die Zeiten von Weiß und Schwarz in Millisekunden
//         Fang an zu suchen. Wenn du fertig bist, sag mir deinen Zug
go wtime 122000 btime 120000 winc 2000 binc 2000
In diesem Fall übergibt - so wie ich es verstanden habe - die GUI der UCI-Engine die Zeit auf der Uhr der beiden Spieler und die Engine muss selbst entscheiden, wann sie die Infos an die GUI zurückgibt.

(Habe leider keine Ahnung, ob jede UCI-Engine dieses Feature haben muss.)

3. Die GUI sagt "Berechne unendlich lang" (go infinite) und sagt dann selbst irgendwann mal "Stop".


Zum Thema "UCI und Take Back":

UCI ist stateless, das ist:

a) gut

-> Merkt zum Beispiel jeder, der schnell eine beliebige Stellung aufbauen und analysieren möchte.

und

b) schlecht

-> Merkt jeder, der Züge zurücknehmen möchte.

siehe hierzu auch:
https://www.chessprogramming.org/UCI#Critique


Wenn also ein picochess-Entwickler den Kontext mit hineinbringen möchte, kann er meines Wissens nicht auf Hilfe innerhalb von UCI zurückgreifen.

Denkbar wäre GUI-seitig evtl. eine Stack-artige Datenstruktur, in der die FENs nach jedem Halbzug samt Bedenkzeiten und movestogo bis zur nächsten Zeitkontrolle abgelegt werden.

Ich bin aber kein Experte, was UCI angeht und habe lediglich mal die Befehle direkt in der Konsole eingegeben. Also korrigiert mich bitte, wenn ich falsch liege.
Und damit ist noch nichts über die Winboard/XBoard-Engines gesagt, sofern diese in picochess zum Einsatz kommen dürfen.
Auch nichts über Engines, die mit Mame und Chessplugin eingebunden sind.
Die Takeback-Routine müsste dann auch mit diesen Engines funktionieren.

Zu guter Letzt nochmal vielen Dank an alle, die in picochess und/oder dem DGT Pi involviert waren: Ihr seid super!


Viele Grüße
Markus
Mit Zitat antworten