![]() |
Suche HILFE ! zufallszahlen ohne WDH
Moin moin zusammen..
Bin gerade dabei mit Delphi 5 ein Lottoprogramm zu schreiben. Allerdings hänge ich momentan an der Vermeidung, dass eine Zahl zweimal gezogen wird. Der Code sieht bisher so aus:
Delphi-Quellcode:
Irgendwie muss hier glaube nochmal eine Schleife rein, die überprüft, ob die zufallszahl einer zahl aus dem array entspricht. Leider habe ich keine Ahnung wie ich das machen soll.
Randomize;
for h:=1 to 6 do begin x:=random(49)+1; if x=zahlen[h] then repeat x:=random(49)+1 until x<>zahlen[h]; zahlen[h]:=x; StringGrid2.Cells[h-1,0]:=IntToStr(zahlen[h]); end; Deswegen wäre es schön wenn sich ein Helfer finden würde. MfG [edit=MrSpock]Code-Tags eingefügt. Mfg, MrSpock[/edit] |
Re: Brauche Hilfe in Delphi
|
Re: Brauche Hilfe in Delphi
Hallo,
![]() Noch 2 Anmerkungen: Bitte ändere den Themen-Titel in einen aussagekräftigen, damit man anhand des Titels erkennen kann, worum's in dem Thema geht. Editiere dazu bitte deinen ersten Beitrag. Wenn du dann beim Editieren bist, dann bitte ich dich auch noch die [delphi][/delphi]-Tags um deinen Delphi-Code zu schreiben, damit dieser gehighlighted und somit besser lesbar ist. Grüße |
Re: Zufallszahlen ohne Zurücklegen
Problem geht weiter. Danke schon mal für die Hilfe.
Delphi-Quellcode:
Manchmal ist eine Dopplung der 49 vorzufinden. Warum?
procedure TForm1.losenClick(Sender: TObject);
VAR i,j,g,y,d,z,k,x,m,h,treffer,p,zw,sa,r:byte; begin (*Zufallszahlen ohne Dopplungen*) Randomize; for h:=0 to 5 do begin x:=49-h; sa:=random(x); zahlen[h+1]:=werte[sa]; werte[sa]:=49-i ; StringGrid2.Cells[h,0]:=IntToStr(zahlen[h+1]); end; (*Sortieren der Zufallszahlen*) for g:=1 to 6 do for d:=1 to 5 do if zahlen[d] > zahlen[d+1] then begin zw:=zahlen[d]; zahlen[d]:=zahlen[d+1]; zahlen[d+1]:=zw; end; (*Ausgabe der Zahlen im StringGrid*) for z:=1 to 6 do StringGrid2.Cells[z-1,0]:=IntToStr(zahlen[z]); (*Einlesen der Tippzahlen*) for y:=1 to 6 do tipp[y]:=StrToInt(StringGrid1.Cells[y-1,0]); (*Vergleichen der Zahlen*) for m:=1 to 6 do for p:=1 to 6 do if zahlen[m]=tipp[p] then inc(treffer); (*Ausgabe der Treffer*) edit1.text:=IntToStr(treffer); for r:=1 to 49 do werte[r]:=r; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz