Einzelnen Beitrag anzeigen
  #9  
Alt 02.11.2019, 17:59
fhub fhub ist offline
Lebende Foren Legende
 
Registriert seit: 19.04.2010
Beiträge: 2.805
Abgegebene Danke: 544
Erhielt 6.563 Danke für 1.515 Beiträge
Aktivitäten Langlebigkeit
10/20 15/20
Heute Beiträge
3/3 sssss2805
AW: MessChess und Arena - Fragen und Antworten

Hi,

da ich gestern per Email gefragt wurde, wie man unter Arena bei den MessChess-Engines
eine bestimmte Zugfolge manuell eingeben und danach mit der Engine weiterspielen kann,
habe ich heute einen Trick gefunden, mit dem genau das möglich ist und man außerdem
auch eine gespeicherte Partie wieder laden und danach fortsetzen kann (dieses Problem
hatten wir ja schon mal - wird speziell für Bryan Whitby interessant sein).

Die erste Voraussetzung dafür ist, daß man in Arena die MessChess-Engines auf das WB-Protokoll
umstellt
, denn mit dem UCI-Protokoll ist das nicht möglich (außer man würde dazu das gesamte
Schachplugin-System komplett umschreiben).
Genau für diesen Zweck hab ich ja in den letzten CB-Emu-Versionen (seit Umstellung auf Arena 3.51)
im Arena-Verzeichnis eine Datei 'ArenaENG_WB.cfg' beigefügt, in der alle Engines eben im
WB-Modus definiert sind. Man braucht also nur diese Datei 'ArenaENG_WB.cfg' über die Datei
'ArenaENG.cfg' drüberkopieren (oder deren Inhalt in eine eigene, externe Arena-Konfiguration
übernehmen) - danach werden alle MessChess-Engines im WB-Protokoll gestartet (das ohnehin
für MessChess das wesentlich bessere und einfachere Protokoll ist).

Unter WinBoard selbst kann man ja solche Zugfolgen ohnehin im Edit-Modus eingeben oder eine
gespeicherte PGN-Datei laden sofern man vorher die Engine in den MultiPlayer- bzw. MultiMove-Modus
eingestellt hat.
Unter Arena geht das im UCI-Modus gar nicht (auch nicht im Edit-Modus), weil Arena die gesamte
Zugfolge erst dann an die Engine sendet, wenn man den Edit-Modus wieder verläßt und den ersten
neuen Zug eingibt, und leider sendet Arena dabei vorher noch ein 'new' an die Engine, was die
meisten Engines wieder zum Verlassen des MultiPlayer-Modus veranlasst.

Aber jetzt kommt eben mein Trick, den ich auch erst heute durch ein wenig Überlegen und Probieren
herausgefunden habe: man darf das in Arena NICHT im Edit-Modus tun, sondern im Analyse-Modus!

Hier also die genaue Abfolge für die Eingabe einer eigenen Zugfolge:
Code:
1) Arena starten (Grundstellung sollte am Brett sein, sonst 'File > New')
2) Engine starten
3) Arena: Analyse-Modus EIN
4) Engine: MultiPlayer-Modus EIN
5) Arena: gewünschte Zugfolge eingeben - falls man selbst den ersten Zug nach dieser
   Zugfolge ausführen möchtest, dann auch diesen noch hier (im Analyse-Modus) eingeben!
6) Arena: Analyse-Modus AUS
7) Engine: MultiPlayer-Modus AUS - dieser Punkt ist bei manches Engines, bei denen man
   den MultiPlayer-Modus nicht direkt (mit eine Taste) wieder ausschalten kann (z.B bei
   den Mephistos mit Menü-Steueung wie Almeria, Lyon, ... usw.) nicht nötig, d.h. bei
   solchen Engines diesen Punkt einfach auslassen
8) Arena: 'Play'-Button drücken (falls die Engine mit Weiß spielt) - wenn die Engine mit
   Schwarz spielt, dann entweder nocheinmal 'Play' in Arena drücken, oder direkt in der
   Engine den Button zum Starten drücken (Move, Go, Enter, ZIEH  usw., je nach Engine).
   (warum das bei Schwarz nicht mit 1-mal 'Play' funktioniert, ist mir nicht klar, aber
   es ist einfach so).
   Jetzt beginnt die Engine zu rechnen, und nach erfolgtem Zug kann normal weitergespielt werden.
Die Punkte 5) bis 8) könnte man auch noch etwas abändern (z.B. den eigenen ersten Zug nach
der Zugfolge erst nach Ausschalten des Analyse-Modus (in Arena) und des MultiPlayer-Modus
(in der Engine) eingeben, woraufhin die Engine auch zu rechnen beginnt, aber das klappt z.B.
bei den erwähnten Mephistos wieder nicht (hier müßte man danach extra wieder ZIEH einstellen),
und damit ist die obige Methode wohl die einfachste.

Und hier nochmals die (ähnliche) Vorgangsweise für das Laden einer gepeicherten PGN-Datei:
(dazu ist übrigens ein 'Save/Load State' bei der Engine gar nicht mehr nötig, falls die bisher
verbrauchten Zeiten keine Rolle spielen)
Code:
1) Arena starten
2) gespeicherte PGN-Datei laden (Partie sollte in der Ausgangsstellung sein, was bei meiner
   Arena-Konfiguration ohnehin so eingestellt ist, ansonsten mit dem Navigationspfeil links
   an den Partieanfang springen)
3) Engine starten (kann auch vor Punkt 2) erfolgen)
4) Arena: Analyse-Modus EIN
5) Engine: MultiPlayer-Modus EIN
6) Arena: ans Ende der Partie springen (rechter Navigationspfeil) - dabei werden jetzt alle
   Züge automatisch an die Engine gesendet (die aber wegen des MultiPlayer-Modus nicht antwortet!)
7) Arena: Analyse-Modus AUS
8) Engine: MultiPlayer-Modus AUS - bei manchen Engines, bei denen man den MultiPlayer-Modus nicht
   direkt wieder ausschalten kann (siehe oben!), diesen Punkt auslassen, dafür ist aber im nächsten
   Punkt 9) evt. ein zusätzlicher Schritt nötig
9) jetzt kann normal weitergespielt werden, also in Arena entweder selbst den nächsten Zug
   eingeben, oder einfach in Arena den 'Play'-Button aktivieren - im ersten Fall (also wenn man
   selbst den nächsten Zug eingibt) muß man bei diesen speziellen Engines, bei denen man den
   MultiPlayer-Modus nicht explizit ausschalten kann, entweder in Arena nochmals auf 'Play' klicken,
   oder in der Engine selbst den Befehl zum Ziehen aktivieren (z.B. ZIEH bei den oben erwähnten
   Mephistos, oder sonst Move, Enter, Go usw.).
Das sieht in geschriebener Form etwas kompliziert aus, aber wenn man das Prinzip einmal verstanden hat,
dann ist die Vorgangsweise eigentlich recht einfach und logisch.
Beachten muß man in Arena eben nur die folgenden 3 Punkte:
a) das alles funktioniert nur im WB-Modus (also mit den Engines im WB-Protokoll)
b) man muß es im ANALYSE-Modus ausführen, nicht im Edit-Modus
c) man muß ZUERST den Analyse-Modus in Arena aktivieren, DANN erst den MultiPlayer-Modus in der Engine

(sonst schaltet Arena diesen MultiPlayer-Modus wieder aus).

Wie man sieht sind also solche 'speziellen' Aufgaben auch unter Arena (im WB-Modus) möglich, weshalb
es eventuell sogar keine schlechte Idee ist, MessChess in Arena prinzipiell im WB-Modus zu betreiben,
d.h. die Datei 'ArenaENG_WB.cfg' anstelle der 'ArenaENG.cfg' zu benutzen.

Grüße,
Franz
Mit Zitat antworten
Folgende 6 Benutzer sagen Danke zu fhub für den nützlichen Beitrag:
Boris (02.11.2019), chessman68 (28.08.2020), ferribaci (02.11.2019), Hartmut (02.11.2019), Mark 1 (02.11.2019), ruschach (03.11.2019)