Hallo Harry,
also ich hab das eben mal unter Arena (UCI) ausprobiert (mit dem Novag Accord, weil der direkt eine Taste TAKEBACK hat), aber so richtig hat das nicht funktioniert.
In manchen Fällen klappte es (gerade Anzahl von Halbzügen zurücknehmen, d.h. man ist selber wieder am Zug), wenn man in Arena dabei 'New Variation' verwendet (nicht bei 'Overwrite') - wenn (bei ungerader Anzahl der Züge) allerdings der Computer zuerst ziehen soll, dann hat Arena diesen Zug nicht erkannt, das Plugin-System ist darauf einfach nicht ausgerichtet.
Die wesentlich sicherere Methode (wenn denn unbedingt Züge zurückgenommen werden sollen/müssen) ist es, die Züge nur in Arena zurückzunehmen, dann die Stellung in die Zwischenablage (als FEN) zu speichern, und sie von dort auch gleich wieder zu laden (evt. vorher noch ein 'New Game') -
das läuft im Plugin dann einfach über den sog. Setup-Mode, und den beherrschen ja auch die meisten Engines.
Edit: Ich hab mir das jetzt nochmal genauer angesehen: das Haupt-Plugin 'init.lua' benutzt eine eigene Repräsentation des Schachbretts ('board'), und diese Stellung wird bei Zugrücknahme (am Gerät oder in Arena) NICHT aktualisiert (das Plugin bekommt davon ja nichts mit). Damit wären bei einer Zugrücknahme zwar die Stellungen in Arena und in der Engine synchron, NICHT aber im Plugin, und damit funktioniert das prinzipiell nicht.
Um so eine Zugrücknahme zu implementieren, müßte man also das Haupt-Plugin 'init.lua' komplett umschreiben, und dann auch noch so eine TakeBack-Funktion für jede einzelne Engine einbauen - definitiv nichts für mich!
Grüße,
Franz