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