Zuerst der Punkt:
if ergebnis=6 then exit;
Eine For Schleife verlässt man mit Break. Das macht in deinem Fall zwar nichts aus, aber wenn später noch etwas nach der Schleife kommt, funktioniert der Code nicht.
An für sich funktioniert der Code, aber so wie ich dich verstanden habe willst du nicht die Würfe anzeigen, sondern nur die Anzahl der Würfe bis 6.
Im Grunde mußt du nur an diesem Punkt einen Block einfügen, statt Exit aufzurufen:
if ergebnis=6 then exit
Hier ein Beispiel:
Delphi-Quellcode:
const
AnzahlVersuche = 20;
var
i: Integer;
Wurf: Byte;
begin
//ListBox2.Items.Clear;
Randomize;
for i := 1 to AnzahlVersuche do
begin
Wurf := Random(6) + 1;
//ListBox2.Items.Add('Versuch ' + IntToStr(i) + ' Zahl ' + IntToStr(Wurf));
if Wurf = 6 then
begin
ListBox1.Items.Add('Anzahl der Versuche: ' + IntToStr(i));
Break;
end;
end;
if Wurf <> 6 then
ListBox1.Items.Add('Trotz ' + IntToStr(AnzahlVersuche) + ' Versuche, keine 6');
end;