Einzelnen Beitrag anzeigen
  #5372  
Alt 30.03.2023, 14:09
fhub fhub ist offline
Lebende Foren Legende
 
Registriert seit: 19.04.2010
Beiträge: 2.579
Abgegebene Danke: 434
Erhielt 5.699 Danke für 1.311 Beiträge
Aktivitäten Langlebigkeit
7/20 14/20
Heute Beiträge
0/3 sssss2579
AW: Mess Emulator für diverse Schachcomputer ist fertig!

Hi,

anscheinend gab's noch Probleme in MessChess bei Durchführung eine Engine-Matches in Verbindung mit einem Reset-State - das hat mir jedenfalls Dirk in einem Email so geschildert.
Daher habe ich jetzt nochmal das Zusammenspiel von Reset-State, MHz-Einstellung und LUA-Plugin in MessChess komplett überarbeitet, und soweit ich es beurteilen kann, funktioniert das jetzt auch gut (jedenfalls bei meinen Versuchen als 'Match/Turnier-Laie' ).

Ich hab also jetzt eine neue Testversion (nur 'MessChess.exe' und 'init.lua', 11MB) hier hochgeladen:
Link nach neuer CB-Emu-Version entfernt!
Vielleicht will es ja jemand mit mehr Erfahrung in Engine-Matches ausprobieren, bevor ich diese Änderungen in eine neue offizielle CB-Emu-Version übernehme!?

Im Prinzip sollte man bei so einem Engine-Match für alle beteiligten Engines ('engineXY') folgende Schritte durchführen:
1) falls eine geänderte CPU-Frequenz gewünscht ist, dann die entsprechende Datei 'mhz\engineXY.mhz' anlegen (oder einfach 'MHz.ini' verwenden, wenn alle Engines mit der gleichen Frequenz laufen sollen).
2) die Engine direkt starten und alle gewünschten Einstellungen vornehmen (z.B. Level, Selektivität, Buch usw.)
3) diesen Zustand dann mit 'Save Reset State' abspeichern.
Nachdem man das für alle Engines gemacht hat, kann man das Match oder Turnier starten.

Kritisch ist eigentlich immer nur der Start einer neuen Partie, und zwar darf die Engine ihren 1.Zug natürlich erst dann ausführen, wenn (bzw. nachdem) ein evt. vorhandener Reset-State auch schon geladen wurde, andernfalls würde dieser 1.Zug von der Reset-Datei ja wieder 'gelöscht' werden und die Partie würde an dieser Stelle bereits abgebrochen.
Das war bis jetzt eben manchmal genau das Problem, sollte jetzt aber durch Änderungen in MessChess und im Plugin 'init.lua' (hoffentlich) behoben sein.

Was passiert also jetzt genau in welcher Reihenfolge, wenn eine Partie (z.B. in einem Match) gestartet wird?
1) zuerst wird die CPU-Frequenz eingestellt, falls eine MHz-Datei vorhanden ist.
2) dann werden die Befehle der Funktion 'interface.setup_machine()' im Engine-Plugin ausgeführt (z.B. irgendwelche notwendigen Initialisierungen).
3) danach wird ein evt. vorhandener Reset-State geladen, der die Engine dann auf die in der Reset-Datei gespeicherten Einstellungen setzt.
4) schließlich bekommt die Engine nun den Befehl zum Ziehen (wenn sie Weiß hat) oder den ersten Zug der anderen Engine übermittelt (falls sie Schwarz hat).

Zwei Dinge sollte ich vielleicht noch erwähnen:
a) Beim allerersten Start einer Engine wird eine vorhandene Reset-Datei 2-mal geladen (also nicht wundern über die 2-malige Popup-Meldung), das läßt sich nicht ändern und stört aber auch nicht.
b) Wenn eine Reset-Datei UND eine MHz-Datei verwendet wird, dann erscheint nur die Popup-Meldung für den Reset-State ("State successfully loaded."), nicht aber die Meldung für die MHz-Einstellung ("Modified CPU frequency!"). Es wird natürlich trotzdem die eingegebene Frequenz korrekt eingestellt, was man ja ohnehin auch in der Titelzeile des Enginefensters erkennen kann.

Edit: 2 Dinge hab ich noch vergessen:
Eine geänderte MHz-Einstellung wird nicht im Reset-State gespeichert, d.h. die CPU-Frequenz kann immer nur durch eine MHz-Datei geändert werden.
Und auch eine evt. 'Speed'-Einstellung (xxx %) wird nicht im Reset-State, sondern in der jeweilgen ini-Datei der Engine gespeichert.

So, jetzt bin ich mal gespannt, welche Rückmeldungen ich über diese Testversion bei Engine-Matches bekomme - falls da jetzt noch immer irgendwelche Probleme auftreten sollten, dann wäre ich nämlich endgültig am Ende mit meinem Latein ...

Grüße,
Franz

Geändert von fhub (05.04.2023 um 13:15 Uhr)
Mit Zitat antworten
Folgende 11 Benutzer sagen Danke zu fhub für den nützlichen Beitrag:
Agep (30.03.2023), Chessguru (03.04.2023), Eberhard A. Börger (30.03.2023), germangonzo (30.03.2023), Hartmut (09.04.2023), kamoj (30.03.2023), Mapi (30.03.2023), Mark 1 (30.03.2023), mickihamster (04.04.2023), Patzerovsky (04.04.2023), Robert (30.03.2023)