Es gibt turnierstufen. Da muss die Engine ja eine bestimmte Zeit einhalten.
40/120 z.B.
Sind 40 Züge in 120 Minuten.
Dann gibt es Durchschnittszeiten. Sagen wir 3 Minuten.
Auch hier wird irgendein Mittelwert genommen, sagen wir auf 60 Züge 3 Minuten. Nimmt man average/Durchschnitt kann es dann aber passieren das das Programm VOR Einer wichtigen zeitkontrolle die Zeit überschreitet.
Daher nimmt man für sowas turnierstufen. Da ist die Zeiteinteilung kein Mittelwert sondern BINDEND. Überschreitet das Gerät die Zeit ist die Partie verloren.
Dito bei Blitzzeiten.
Hier ist 4 Minuten für die Partie oder
4 Minuten für die Partie und bei jedem Zug noch 20 Sekunden Zuschlag , absolut bindend.
Der der zuerst eine abgelaufene Zeit hat hat verloren.
Aber ihr braucht das Rad nicht erfinden. Jede UCI Engine sollte alle diese spielstufen KÖNNEN denke ich.
UCI heißt Universal Chess Interface und ist ein Protokoll das Stefan Meyer kahlen erfunden hat, jeder kann es nutzen.
https://de.m.wikipedia.org/wiki/Univ...hess_Interface
Alle Engines verwenden es. Vorher gab es ein ähnliches Format, das hieß winboard.
Engines sind also entweder im winboard Format (älter) oder nachdem Stefan das UCI entwickelte, im UCI Format.
Stefan Meyer kahlen ist der shredder Programmierer.
Bei ihm auf der Webseite kann man die Norm herunterladen.
http://download.shredderchess.com/div/uci.zip
Denn ihr braucht nicht der Engine sagen sie soll ziehen oder nicht, eigentlich regelt die Engine das selber. Die Zeiteinteilung für die jeweiligen spielstufen
Haben die Engines schon implementiert.
Wenn ich also eine UCI Engine in Arena , shredder, Fritz oder anderen oberflächenprogrammen laufen lasse brauchen die Oberflächen nix steuern.
Die Oberflächen regeln nur die Eingabe und datenübergabe der spielstufen, den Output der Engine auf dem Bildschirm. Aber NICHT Die internen Belange der Engine beim Rechnen, dazu gehört auch die Dauer der Berechnung.
Die Engine teilt sich selber die Zeit ein, wenn die spielstufe
Turnier
Blitz
Durchschnitt
Ist.
Das ist ja ein Bestandteil der Spielstärke einer Engine, wie gut sie sich die Zeit einteilt und das permanent Brain, nutzt.
Es gibt Engines die haben sehr intelligente Algorithmen, andere die machen das primitiv und verschleudern Zeit.
Wie lange eine Engine in einem halbzug rechnet, ob sie eventuell noch den ersten Ast mitnimmt, und dann den besten Zug ausspielt, oder den ganzen halbzug durchrechnet obliegt der Steuerung der Engine.
Die Oberfläche ist nur da die Werte an die Engine zu übergeben.
Gibt der User Average 2' ein oder 30", gibt der User Partie in 5+ 3" ein ?
Gibt der User 60/60 oder 40/120 ein ?
All das wird an die Engine übergeben. Diese rechnet dann entsprechend.
So wie das bislang bei grandmaster ist, das nur exakte zurzeit oder Rechentiefe als Kriterium benutzt wird, ist quasi eine kastrierte Engine.
Daher müsst ihr nicht das Rad erfinden ihr müsst nur die UCI Engines auch UCI einbinden.
(Sorry für die merkwürdige Rechtschreibung aber mein iPad fummelt mir da rein.)