Hast Du mal einen Haltepunkt gesetzt und den Ablauf schrittweise verfolgt?
M.E. müssten die Funktionen abwechselnd aufgerufen werden (wobei man als Nutzer davon natürlich nichts weiter merkt, da ja nur Variableninhalte geändert werden.
Von der Logik her würde ich die Funktionen tauschen:
Delphi-Quellcode:
repeat // Schleife initiieren
if SpielerIstAmZug then // Wenn Flag auf True steht dann...
begin
GegnerZieht(Ende); // Spieler sollte ziehen
end
else // Wenn Flag nicht auf True steht dann...
begin
SpielerZieht(Ende); // Gegner sollte ziehen
end;
Oder das Flag sollte GegnerIstAmZug heißen.