
Zitat von
Hartmut
Wenn ich die Posts weiter oben richtig verstanden habe, dann hast Du die damaligen "Geisterzüge" dadurch beseitigt, dass Du irgendwo Warteschleifen oder sowas eingebaut hast.
Na ja, dieses Problem damals mit dem Prodigy war doch etwas anders, da mußte das Haupt-Plugin 'init.lua' selbst in einer Schleife warten, bis ein 'busy-Signal von der Engine für längere Zeit auf OFF geschaltet war, und erst dann einen Zug vom Display ablesen.
Aber mit Deiner Vermutung bzgl. dieses Initialisierungsproblems unter Winboard (bei Engine-Matches) könntest Du schon recht haben. Wenn ja, dann ließe sich das wahrscheinlich mit einer einzigen zusätzlichen Zeile erledigen.
In allen Engine-Plugins existiert (gleich nach meiner 'function setlevel()') die Initialisierungsroutine 'interface.setup_machine()', und die sieht im Prinzip so aus:
Code:
function function interface.setup_machine()
... ein paar Befehle
... zur Initialisierung
... der Engine
setlevel()
end
Dieses function interface.setup_machine() wird für jede Engine ausgeführt, bevor die eigentliche Partie beginnt, also bevor irgendwelche Züge eingegeben oder übermittelt werden.
Wenn Du nun in dieser Funktion z.B. einen Wartebefehl der Form
emu.wait(5.0) einfügst, dann wartet eben die entsprechende Engine (in diesem Fall 5 sec.) bevor sie weitermacht, also bevor die eigentliche Partie beginnt.
Am logischten erscheint mir, diesen Befehl emu.wait(xx) ganz am Ende (also direkt nach setlevel()) einzufügen, damit zumindest bereits die Initialisierung und die Leveleinstellung abgeschlossen ist bevor diese Pause einsetzt.
Außerdem ist diese Pause natürlich hauptsächlich für die Engine nötig, die mit Weiß beginnt, aber schaden tut die Pause natürlich bei keiner Engine, es dauert dann eben der Startvorgang einfach ein paar Sekunden länger.
Versuch das einfach mal ...
Grüße,
Franz