Einzelnen Beitrag anzeigen
  #2073  
Alt 02.01.2019, 17:57
fhub fhub ist offline
Lebende Foren Legende
 
Registriert seit: 19.04.2010
Beiträge: 2.579
Abgegebene Danke: 434
Erhielt 5.699 Danke für 1.311 Beiträge
Aktivitäten Langlebigkeit
7/20 14/20
Heute Beiträge
0/3 sssss2579
AW: Mess Emulator für diverse Schachcomputer ist fertig!

Hallo Robert!
 Zitat von Robert Beitrag anzeigen
Zu der Zugprotokollierung habe ich einen kleinen Tip: Die GUIs von Shredder und Chessbase können die Züge einlesen (einfach per copy-and-paste einfügen) und dann in pgn umwandeln. Klappt auch mit Enpassant und Bauernumwandlung; bei Unterverwandlung muss man vorher die Notation halt in einen Texteditor laden und den Zug anpassen.
Ich war mir schon sicher, daß manche Programme mit dieser Koordinatenform umgehen können. Ich hab's jetzt auch mit Arena mal probiert, und da funktioniert es auch - mit einer Ausnahme: Arena akzeptiert die Kleinbuchstaben (z.B. 'q') bei einer Umwandlung nicht! Ich dachte mir eigentlich, daß Groß-/Kleinschreibung von den meisten Schachprogrammen ignoriert wird - na gut, ich hab die Figuren im meinem Sourcecode schon mal auf PNBRQK geändert, und damit klappt's jetzt auch in Arena.
Zitieren:
Danke nochmals für diese tolle Feature (habe ich mir schon von Anfang an gewünscht, aber nicht zu fragen getraut )
Na ja, dafür traust Du Dich jetzt umso mehr, und zwar gleich mit einer Liste von (praktisch) unerfüllbaren Wünschen.
Zitieren:
Ein Featurerequest hätte ich: Wäre es möglich, dass in der Headerzeile angezeigt wird, mit welcher Farbe die EMU gespielt hat? Wäre für Wettkämpfe recht praktisch...
Das geht leider nicht, jedenfalls nicht automatisch, denn der Code, der die Züge in die Log-Datei schreibt, bekommt ja die Brettkoordinaten nicht direkt vom Schachprogramm (im ROM), sondern von meiner eigenen Routine, die ständig die Brettfelder auf Mausklicks scannt. Und da ja immer DU als Benutzer die Figuren bewegst (nicht das Schachprogramm selber), 'weiß' weder dieser Scan-Code noch die Log-Funktion, ob das nun ein Computer- oder Spielerzug war, und daher auch nicht, wer nun welche Farbe hat.
Die einzige Möglichkeit, die ich mir vorstellen könnte, wäre wenn Du am Anfang der Partie meiner Log-Funktion mitteilen würdest, welche Farbe (Seite) das Schachprogramm hat, z.B. indem Du vor Beginn der Partie 2-mal auf ein (leeres!) weißes Feld klickst, falls der Computer mit weiß beginnt - das könnte ich in dieser Form einbauen. Ob das allerdings wirklich praktisch ist, das bezweifle ich.
Zitieren:
Oder noch besser: Dass man direkt die Headerzeile aus dem Programm heraus editieren kann? Mit einem Texteditor geht das ja nicht, solange CB-Emu läuft.
Also das kannst Du vergessen, ich schreib doch nicht noch einen kompletten Partieeditor in MAME, noch dazu in 'C' - dazu habe ich sowohl vom MAME-System als auch von 'C' zu wenig Ahnung, weil das ja eigentlich gar nicht meine Programmiersprache ist.
Wenn Du da irgendwas ändern oder hinzufügen willst, dann beende eben CB-Emu und mach das mit einem beliebigen Editor. Du tust das ja anscheinend ohnehin auch dann, wenn Du die Partie in ein anderes Schachprogramm (Shredder oder ChessBase) als PGN importieren willst - dort kannst Du dann ja nach Belieben zusätzliche Infos dazuschreiben.
Zitieren:
Und noch was: Nach Beenden der Emulation und Laden per Autosave beginnt die Notation wieder bei 1 und bekommt eine neue Headerzeile. Wenn Du das so anpassen könntest, dass die Notation korrekt fortgesetzt wird, das wäre super!
Mein Gott, Du immer mit Deinem 'Autosave' - das benutzt doch außer Dir sowieso niemand!
(hast Du etwa nicht genug Geduld, eine ganze Partie bis zum Ende zu spielen? )
Nun, prinzipiell wäre das schon machbar, ich müßte nur die Variable für die Zugnummer auch in die Autosave-Liste aufnehmen, dann würde sie gespeichert und beim nächsten Start wieder korrekt geladen werden.
ABER - da gibt's leider 2 Probleme:
Das geringere ist, daß damit alle im Verzeichnis 'sta' gespeicherten Default-State-Dateien ungültig würden, und die alle wieder neu erzeugt werden müßten (und das sind fast 70!).
Das gravierendere Problem ist aber, daß diese Autosave ja 'pro Modul' gilt, und nicht für das gesamte CB-Emu-Programm, und da stell Dir mal folgende Situation vor:
Du spielst eine Partie gegen Programm A, und brichst vorzeitig ab, d.h. Autosave speichert den aktuellen Stand von A. Nun spielst Du gegen ein anderes Programm B (egal ob gleich oder nach Beenden und Neustart von CB-Emu), dann wird diese Partie gegen B ja wieder in der Log-Datei angehängt. Beendest Du nun die Partie B (ob vorzeitig oder nicht), und startest wieder das Programm A zum Weiterspielen, dann werden jetzt (mit Deinem Autosave-Wunsch) die neuen Züge von A einfach an die vorige Partie B angehängt, und zwar ohne Angabe des Programmnamens und mit den alten, gespeicherten Zugnummern!
In der Liste sieht das also dann so aus, als ob das immer noch die Züge des vorigen Programms B wären, und die Zugnummern wären auch völlig absurd - das gäbe ein totales Chaos in der Log-Datei!
Von dieser Idee halte ich also herzlich wenig ...

Grüße,
Franz
Mit Zitat antworten