AW: MessChess und Winboard
Also inzwischen hab ich nur eine (allerdings recht einfache) Methode gefunden, das mit geringem Aufwand doch noch durchzuführen:
Nach dem Laden der PGN-Datei und Umschalten auf 'Two Machines' muß man ja ohnehin mit 'Move Now' (bzw. Ctrl-M) in Winboard das Match überhaupt mal starten. Dabei schaltet Engine 1 ja auch automatisch aus dem MEMO-Modus wieder zurück in den PLAY-Modus (dafür hat Didi ja durch einen zusätzlichen CL-Befehl in interface.start_play() ja schon gesorgt).
Den dann von Engine 1 berechneten Zug schickt Winboard allerdings als 'normalen' Zug and Engine 2 (also ohne dieses interface.start_play() zu senden), und daher bleibt nach diesem Zug Engine 2 auch weiterhin im MEMO-Modus (daran kann ich auch nichts ändern, weil ich auf die von Winboard gesendeten Befehle ja keinen Einfluß habe).
Allerdings braucht man nun eben einfach nochmals Ctrl-M in Winboard drücken, denn damit bekommt jetzt auch Engine 2 diesen Befehl interface.start_play(), schaltet von MEMO nach PLAY zurück und beginnt zu rechnen - von da weg geht das Match dann automatisch weiter.
Also kurz zusammengefaßt: statt 1-mal Ctrl-M nach Umschlten auf 'Two Engines' braucht man nur 2-mal Ctrl-M drücken, das 2.Mal allerdings erst nachdem Engine 1 seinen 1.Zug gemacht hat.
Eine andere Möglichkeit sehe ich derzeit nicht, jedenfalls nicht ohne größere Eingriffe in die ganze Winboard-Plugin-Kommunikation.
PS: Übrigens, diese Fehlermeldung Err2 kann man einfach eliminieren durch eine zusätzliches CL (also send_input(":KEY1_0", 0x80, 1) -- CL) in der Funktion setlevel() direkt vor der Umschaltung in den LEV-Modus (also vor send_input(":KEY1_4", 0x80, 1) -- LEV).
Das Problem war, daß dieses setlevel() natürlich nicht erwartet hat, aus dem MEMO-Modus heraus aufgerufen zu werden.
Grüße,
Franz
|