|
Folgender Benutzer sagt Danke zu fhub für den nützlichen Beitrag: | ||
Mythbuster (01.08.2019) |
|
|||||||||||
AW: MessChess und Winboard
Bei Winboard ist das Hauptproblem, dass man mit Starten des Programms schon Engines definieren muss. Allerdings könnte ich mir - rein theoretisch - folgendes Scenario vorstellen:
Ich lade z.B. in Winboard eine PGN-Datei und starte DANACH eine Engine. Diese Engine könnte doch jetzt per Script (also lua) überprüfen ob eine solche PGN oder eine Zugliste in Winboard existiert, in den Memory-Modus springen, und die Züge nacheinander einlesen. Da in einer PGN-Datei das Ende einer Zugliste meist durch einen "*" gekennzeichnet ist, könnte dies doch dann als quasi "end of file"-Bedingung gelten und dadurch veranlasst werden, dass nun per Script aus dem Memory-Modus herausgesprungen wird. Ich kenne mich mit lua leider nicht genug aus um zu wissen, ob das so zu verwirklichen ist, aber es wäre zuerst mal eine Grundidee... So wie Didi es beschreibt, hat er es ja irgendwie geschafft, dass die Engines geladen werden und auch die Eingabe der Position erfolgt. Also muss es ja auch irgendwie möglich sein in der bestehenden Zugliste ein EOF zu erkennen. Dazu müssten wir aber ein Beispielscript einer Engine haben wo er diesen Setup-Modus eingebaut hat. Ansonsten kommen wir vermutlich nicht weiter.
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation) https://www.iccf.com/player?id=89948&tab=3 Geändert von Hartmut (01.08.2019 um 13:36 Uhr) |
|
|||||||||||
AW: MessChess und Winboard
Zitieren:
Allerdings könnte ich mir - rein theoretisch - folgendes Scenario vorstellen:
Ich lade z.B. in Winboard eine PGN-Datei und starte DANACH eine Engine. Diese Engine könnte doch jetzt per Script (also lua) überprüfen ob eine solche PGN oder eine Zugliste in Winboard existiert, ... |
|
|||||||||||
AW: MessChess und Winboard
Zitieren:
Wie soll denn das gehen? Wie soll das LUA-Script Winboard 'fragen', ob eine Zugliste vorliegt?
Edit: Ups, Didi war schneller... wir haben ein Beispielscript, lach
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation) https://www.iccf.com/player?id=89948&tab=3 |
|
|||||||||||
AW: MessChess und Winboard
"Wie soll denn das gehen? Wie soll das LUA-Script Winboard 'fragen', ob eine Zugliste vorliegt?"
Genau darum gehts ja... |
|
|||||||||||
AW: MessChess und Winboard
Ich habe allerdings Didis Post so verstanden, dass ja wohl irgendeine Kommunikation stattfindet, die Engine in den Memory-Modus geschickt wird, und irgendwas danach passiert (Übertragung der Züge?). Nur gehen die Programme danach aus dem Memory-Modus nicht mehr raus. Und das müsste ja über eine EOF-Abfrage zu klären sein.
Und wenn Winboard das Ende der Zugliste eben nicht irgendwie dem Script mitteilt (und das tut es nicht), dann weiß eben die Engine von diesem Ende nichts. |
Folgender Benutzer sagt Danke zu fhub für den nützlichen Beitrag: | ||
Hartmut (01.08.2019) |
|
|||||||||||
AW: MessChess und Winboard
Nee, so eine EOF-Abfrage ist deswegen nicht möglich, weil ja nicht die Engine (bzw. das Script) aus der PGN-Datei liest oder selbst Winboard nach Zügen fragt, sondern Winboard liest die Datei und sendet die Züge an das Script.
Und wenn Winboard das Ende der Zugliste eben nicht irgendwie dem Script mitteilt (und das tut es nicht), dann weiß eben die Engine von diesem Ende nichts.
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation) https://www.iccf.com/player?id=89948&tab=3 Geändert von Hartmut (01.08.2019 um 15:45 Uhr) |
|
|||||||||||
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 |
Folgende 4 Benutzer sagen Danke zu fhub für den nützlichen Beitrag: | ||
|
|||||||||||
AW: MessChess und Winboard
Ein Problem scheint es bei der enpassent-Regel in der Emulation des VEB Chessmaster zu geben.
Grundsätzlich bei jedem enpassent-Schlagen fängt die Emu mit einem Dauerpiepen (bei dem Ton könnte man übrigens schon von einem Dauerkreischen reden) an und die drei Felder (von-zu-geschlagene Figur) leuchten. Dabei ist es völlig egal ob jetzt der VEB Chessmaster selbst enPassent schlägt oder ob der Gegner dies tut. Irgendwie wird scheinbar hier die Reihenfolge nicht eingehalten in der die entsprechenden Felder zu drücken sind. Winboard zeigt dann zwar den korrekten Zug an, man kann auch noch antworten, aber spätestens danach ist Feierabend. Hier scheint also in der entsprechenden lua noch ein Fehler vorzuliegen.
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation) https://www.iccf.com/player?id=89948&tab=3 |
|
|||||||||||
AW: MessChess und Winboard
Edit: jetzt ist es doch passiert, und zwar wenn der ChessMaster enpassant schlägt. Aber wie schon erwähnt, kümmere ich mich um die LUA-Plugins nicht mehr. Geändert von fhub (03.08.2019 um 14:42 Uhr) |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
Info: UCI und XBoard/Winboard | Solwac | Die ganze Welt der Schachcomputer / World of chess computers | 9 | 17.08.2017 19:52 |
News: MephBoard - Winboard Engine für Mephisto PC-Modul | krval | Technische Fragen und Probleme / Tuning | 8 | 11.01.2012 21:30 |
Tipp: Mephisto Board - Winboard Engine für Mephisto PC-Modul | krval | Technische Fragen und Probleme / Tuning | 9 | 31.07.2011 15:19 |