Hallo Jens,

Zitat von
Jens H
Kürzlich wurden von Franz ein paar Unterverwandlungs-Probleme angesprochen und behoben. Ich habe möglicherweise auch eines entdeckt. In folgender Partie zwischen Elite A/S Glasgow und Lyon 16bit wandelt der Lyon im 58. Zug in einen Springer (korrekte Notation wäre also 58. ... c1=S) um, am Brett erscheint aber eine Dame und die Partie wird im darauffolgenden Zug wegen eines als illegal bewerteten Zuges des Lyon von Arena als beendet erklärt:
ich hab jetzt diese Partie im Lyon mal bis zum Zug 57... c2 geladen und danach selbst 58. g8Q eingegeben. Daraufhin zieht der Lyon 58... c1N, d.h. er wandelt in einen Springer um, aber das MessChess-Plugin glaubt tatsächlich eine Umwandlung in eine Dame zu erkennen.
Also hab ich mir diesen Umwandlungscode im Plugin mal angesehen (der stammt übrigens noch vom Original-Plugin von Sandro Ronco), und da war mir auch schnell klar, wie es zu diesem Fehler kommt: dieser Code funktioniert unter einer ganz bestimmten Voraussetzung nicht, nämlich genau dann, wenn im Zug vorher Weiß auch eine Umwandlung gemacht hat und sofort danach auch Schwarz in eine andere Figur umwandelt (und zwar in eine mit niedrigerem 'Rang'). Im Plugin wird eine Umwandlungsfigur nämlich im Display-RAM gesucht, und bei der verwendeten Methode wird dabei eben zuerst diese (falsche) Figur der vorangehenden Umwandlung gefunden.
Um diesen Bug zu beheben, müßte ich eine komplett andere Umwandlungsroutine schreiben (und das für ALLE ähnlichen Mephisto-Engines!), und das tue ich mir sicher nicht an für eine extrem seltene Situation, die unter 1000 Partien vielleicht einmal vorkommt.
Grüße,
Franz