Schachcomputer.info Community

Zurück   Schachcomputer.info Community > Computerschach / Computer Chess: > Mess Emu & andere Emulationen / Mess Emu and other Emulations


Antwort
 
Themen-Optionen Ansicht

  #1  
Alt 01.08.2019, 12:37
fhub fhub ist gerade online
Lebende Foren Legende
 
Registriert seit: 19.04.2010
Beiträge: 2.805
Abgegebene Danke: 544
Erhielt 6.564 Danke für 1.515 Beiträge
Aktivitäten Langlebigkeit
11/20 15/20
Heute Beiträge
1/3 sssss2805
MessChess und Winboard

 Zitat von Didi Beitrag anzeigen
Ich starte unter Winboard die beiden Programme, die schalten sich automatich in den Memory Modus. Ich lade die Partie unter Winboard und Winboard schickt die Züge an die beiden Programme. Nach dem letzten übertragenden Zug, soll nun der Memory Modus mit der CL-Taste beendet werden und die Partie gestartet werden.
Also ich hab jetzt mal versucht, das in Winboard nachzuvollziehen (hab dafür extra Dein setpos() eingebaut), aber da ich keinerlei Erfahrung mit diesen Enginematches habe, hat es leider nicht funktioniert.

Wie ist denn die Reihenfolge in Winboard genau?
Du startest Winboard und wählst gleich beide Engines in den beiden Listen aus. Danach ist in ja Winboard im Menü 'Mode' erstmal die Option 'Machine Black' aktiviert.
1.Versuch: Wenn ich da jetzt 'Two Machines' aktiviere, dann zeigt die erste Engine STA in der Anzeige, und in Winboard kann ich aber im Menü 'File' keine Partie mehr laden!?

2.Versuch: Wenn ich allerdings vorher (d.h. vor Umschalten auf 'Two Machines') schon die Partie lade, dann meldet Engine 1 kurz ein Err2 und zeigt dann wieder MEMO an, scheint danach aber die Züge aus der Partie von Winboard übermittelt zu bekommen.
Danach schalte ich auf 'Two Machines' um, und jetzt erscheint auch Engine 2 und bekommt die Züge nun ebenfalls von Winboard.

Jetzt ist also anscheinend dieser Zustand erreicht, wo beide Engines die Vorgabestellung auf dem Brett haben, und wo Du gerne hättest, daß es automatisch weitergeht, d.h. jetzt Engine 1 von selbst weiterzuspielen beginnt, stimmt das bis jetzt so?
(diesen Fehler Err2 verstehe ich allerdings noch nicht)

Nun, manuell muß man jetzt bei beiden Engines CL drücken (um den MEMO-Modus zu beenden), aber zusätzlich auch noch bei Engine 1 die Taste ENT, weil diese jetzt ja zu spielen beginnen soll.

Ich frage mich allerdings, WIE man das automatisieren soll (im LUA-Script), denn woher sollen die Engines wissen, daß nach dieser Zugfolge jetzt Schluß ist mit den Vorgabezügen? Das müßte ja Winboard irgendwie den beiden LUA-Scripts mitteilen, damit diese dann die nötigen Tasten 'drücken' können.
Also müßte da eher in Winboard irgendwas geändert werden als in den LUA-Dateien ...
Mit Zitat antworten
Folgender Benutzer sagt Danke zu fhub für den nützlichen Beitrag:
Mythbuster (01.08.2019)
  #2  
Alt 01.08.2019, 13:25
Hartmut Hartmut ist offline
Lebende Foren Legende
 
Registriert seit: 01.04.2010
Ort: Nürnberg
Alter: 60
Land:
Beiträge: 2.226
Abgegebene Danke: 3.403
Erhielt 1.644 Danke für 945 Beiträge
Aktivitäten Langlebigkeit
6/20 15/20
Heute Beiträge
1/3 sssss2226
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)
Mit Zitat antworten
  #3  
Alt 01.08.2019, 13:42
Didi Didi ist offline
Boris Handroid
 
Registriert seit: 20.02.2014
Beiträge: 35
Abgegebene Danke: 22
Erhielt 9 Danke für 7 Beiträge
Aktivitäten Langlebigkeit
0/20 11/20
Heute Beiträge
0/3 sssssss35
AW: MessChess und Winboard

Ja, genauso läuft das ganze unter Winboard.
Die Fehlermeldung wird ja ignoriert, somit läuft das alles dann normal weiter. Andere Schachprogramme ignorieren das komplett.
Ich denke, dass Winboard da etwas schickt, um dem Programm mitzuteilen, dass jetzt eine Zugfolge gesendet wird. Und vielleicht sendet Winboard auch etwas, um das Ende der Zugfolge mitzuteilen. Genau diese beiden Befehle müsste man im LUA Script abfangen. Dann könnte man das komplett automatisieren.
Mit Zitat antworten
  #4  
Alt 01.08.2019, 13:43
fhub fhub ist gerade online
Lebende Foren Legende
 
Registriert seit: 19.04.2010
Beiträge: 2.805
Abgegebene Danke: 544
Erhielt 6.564 Danke für 1.515 Beiträge
Aktivitäten Langlebigkeit
11/20 15/20
Heute Beiträge
1/3 sssss2805
AW: MessChess und Winboard

 Zitat von Hartmut Beitrag anzeigen
Bei Winboard ist das Hauptproblem, dass man mit Starten des Programms schon Engines definieren muss.
Also das stimmt schon mal nicht - Du kannst WinBoard auch ohne Engine(s) starten (mit 'Just view or edit game files' im Startfenster) und danach in WinBoard mit 'Engine -> Load First/Second Engine' die Engine(s) nachladen.
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, ...
Wie soll denn das gehen? Wie soll das LUA-Script Winboard 'fragen', ob eine Zugliste vorliegt? Dafür wäre nicht nur Code im LUA-Script nötig, sonder auch entsprechende 'Vorkehrungen' in WinBoard, damit eine solche Kommunikation überhaupt stattfinden kann - in WinBoard ist sowas einfach nicht vorgesehen, da geht's um reinen Austausch von WB-Befehlen.
Mit Zitat antworten
  #5  
Alt 01.08.2019, 13:48
Didi Didi ist offline
Boris Handroid
 
Registriert seit: 20.02.2014
Beiträge: 35
Abgegebene Danke: 22
Erhielt 9 Danke für 7 Beiträge
Aktivitäten Langlebigkeit
0/20 11/20
Heute Beiträge
0/3 sssssss35
AW: MessChess und Winboard

 Zitat von Hartmut Beitrag anzeigen
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.
Hier die Datei mm4.txt. Einfach umbennen in mm4.lua und am besten mit "Notepad++" editieren. Die Datei kommt in das Verzeichniss:

C:\CB-Emu\MessChess\plugins\chessengine\interfaces

Starten unter Winboard Mephisto MMIV als Engine 1 und Engine 2.
Angehängte Dateien
Dateityp: txt mm4.txt (3,7 KB, 226x aufgerufen)
Mit Zitat antworten
  #6  
Alt 01.08.2019, 13:49
Hartmut Hartmut ist offline
Lebende Foren Legende
 
Registriert seit: 01.04.2010
Ort: Nürnberg
Alter: 60
Land:
Beiträge: 2.226
Abgegebene Danke: 3.403
Erhielt 1.644 Danke für 945 Beiträge
Aktivitäten Langlebigkeit
6/20 15/20
Heute Beiträge
1/3 sssss2226
AW: MessChess und Winboard

 Zitat von fhub Beitrag anzeigen
Also das stimmt schon mal nicht - Du kannst WinBoard auch ohne Engine(s) starten (mit 'Just view or edit game files' im Startfenster) und danach in WinBoard mit 'Engine -> Load First/Second Engine' die Engine(s) nachladen.
Stimmt natürlich. Mach ich nur bei meinen Enginewettkämpfen so gut wie nie, daher hatte ich das jetzt nicht im Fokus... mein Fehler

Zitieren:
Wie soll denn das gehen? Wie soll das LUA-Script Winboard 'fragen', ob eine Zugliste vorliegt?
Wie das gehen soll, weiss ich auch nicht. 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. Kann natürlich sein, dass ich Didis Post hier völlig falsch verstanden habe. Wie gesagt, es hilft nichts, wir bräuchten ein Beispielscript um zu sehen was passiert...

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
Mit Zitat antworten
  #7  
Alt 01.08.2019, 13:56
Didi Didi ist offline
Boris Handroid
 
Registriert seit: 20.02.2014
Beiträge: 35
Abgegebene Danke: 22
Erhielt 9 Danke für 7 Beiträge
Aktivitäten Langlebigkeit
0/20 11/20
Heute Beiträge
0/3 sssssss35
Lächeln AW: MessChess und Winboard

"Wie soll denn das gehen? Wie soll das LUA-Script Winboard 'fragen', ob eine Zugliste vorliegt?"

Genau darum gehts ja...
Mit Zitat antworten
  #8  
Alt 01.08.2019, 13:58
fhub fhub ist gerade online
Lebende Foren Legende
 
Registriert seit: 19.04.2010
Beiträge: 2.805
Abgegebene Danke: 544
Erhielt 6.564 Danke für 1.515 Beiträge
Aktivitäten Langlebigkeit
11/20 15/20
Heute Beiträge
1/3 sssss2805
AW: MessChess und Winboard

 Zitat von Didi Beitrag anzeigen
Ja, genauso läuft das ganze unter Winboard.
Ok, dann hab ich es ja zufälligerweise richtig gemacht.
Zitieren:
Ich denke, dass Winboard da etwas schickt, um dem Programm mitzuteilen, dass jetzt eine Zugfolge gesendet wird.
Also da bin ich mir nicht so sicher: wenn ich selber im MEMO-Modus eine Zugfolge in Winboard eingebe (mit 'Mode -> Edit Game'), am Ende dann selbst auf CL in der Engine klicke, und danach in Winboard z.B. auf 'Mode -> Machine is White' umschalte, dann tut sich bei der Engine rein gar nichts, d.h. Winboard schickt bei dieser Umschaltung keinerlei Befehl an die Engine - man muß selber erst ENT drücken, damit die Engine wirklich startet.

Das Problem dabei ist, daß es in WinBoard keine Option gibt (so wie mit F4 in Arena), mit der man die ganz Kommunikation zwischen Winboard und Engine mitverfolgen kann - damit wäre es sicher einfacher, evt. eine Lösung für dieses Problem zu finden.
Mit Zitat antworten
  #9  
Alt 01.08.2019, 14:03
fhub fhub ist gerade online
Lebende Foren Legende
 
Registriert seit: 19.04.2010
Beiträge: 2.805
Abgegebene Danke: 544
Erhielt 6.564 Danke für 1.515 Beiträge
Aktivitäten Langlebigkeit
11/20 15/20
Heute Beiträge
1/3 sssss2805
AW: MessChess und Winboard

 Zitat von Hartmut Beitrag anzeigen
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.
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.
Mit Zitat antworten
Folgender Benutzer sagt Danke zu fhub für den nützlichen Beitrag:
Hartmut (01.08.2019)
  #10  
Alt 01.08.2019, 14:19
Hartmut Hartmut ist offline
Lebende Foren Legende
 
Registriert seit: 01.04.2010
Ort: Nürnberg
Alter: 60
Land:
Beiträge: 2.226
Abgegebene Danke: 3.403
Erhielt 1.644 Danke für 945 Beiträge
Aktivitäten Langlebigkeit
6/20 15/20
Heute Beiträge
1/3 sssss2226
AW: MessChess und Winboard

 Zitat von fhub Beitrag anzeigen
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.
Hm... die ursprüngliche Emulation, die vor Deiner Zeit erstellt wurde - also die, die ganz am Anfang mit nur einigen wenigen Mephisto-Engines unter Arena eingebunden war (das war mit Hilfe einer Mess-Tiny) konnte das. Sowohl mit den UCI-Versionen als auch mit den Winboard-Versionen. Wenn ich da eine abgespeicherte Partie öffne und z.B. die alte MM IV-Emulation starte, springt er automatisch in den Memory-Modus und liest die Zugliste ein. Wie das allerdings funktioniert hat... keine Ahnung. Damals gab es die luas ja noch nicht. Kann natürlich sein, dass er das in diesem Mess-Tiny irgendwie direkt verbaut hat, aber das weiss ich natürlich nicht. Bei Deiner Emu wäre das - selbst wenn es rein theoretisch machbar wäre - zwischenzeitlich schon allein angesichts der Menge an Emus (und es kommen ja immer noch welche dazu) eine Herkulesaufgabe. Sofern es also nicht doch noch durch die Hintertür irgendwie scriptmäßig zu lösen ist, können wir das wohl vergessen.
__________________
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)
Mit Zitat antworten
Antwort


Forumregeln
Du bist nicht berechtigt, neue Themen zu erstellen.
Du bist nicht berechtigt, auf Beiträge zu antworten.
Du bist nicht berechtigt, Anhänge hochzuladen.
Du bist nicht berechtigt, deine Beiträge zu bearbeiten.

BB code ist An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.

Gehe zu

Ä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


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr.



Powered by vBulletin (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
©Schachcomputer.info