Hallo,
zuerst einmal solltest du die Variable "Zug" initialisieren.
Delphi-Quellcode:
procedure TForm1.KugelnZiehen(Sender: TObject);
var s,w,fall,zug:integer;
begin
//init
Zug := 0;
w:=StrToInt(Weiss.text);
s:=StrToInt(Schwarz.text);
Zum Anderen sollst/musst
randomize
in OnCreate der Form legen. Damit es nur einmal aufgerufen wird.
Wenn eine IF-Anweisung kein else hat, dann brauchst es auch nicht schreiben.
Also anstatt:
Delphi-Quellcode:
begin
w:=w-2;
s:=s+1;
zug:=zug+1;
end
else
besser:
Delphi-Quellcode:
begin
w:=w-2;
s:=s+1;
zug:=zug+1;
end;
Des weiteren, bist du dir sicher, dass deine Ausstiegs-Logik stimmt?
until s+w=1;
Kann das eintreten?
Ich habe es mal getestet, bei weiss = 3 und schwarz = 5 wird w und s jeweils minimal 1
und 1 + 1 = 2
[Edit]
Ist nur Schönheit: Aber den begin/end-Block im repeat-Teil kannst dir sparen. Bei repeat braucht man keinen begin/end-Block
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<