Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Suche HILFE ! zufallszahlen ohne WDH (https://www.delphipraxis.net/120640-suche-hilfe-zufallszahlen-ohne-wdh.html)

kompi19 14. Sep 2008 10:04


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:
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;
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.
Deswegen wäre es schön wenn sich ein Helfer finden würde. MfG

[edit=MrSpock]Code-Tags eingefügt. Mfg, MrSpock[/edit]

DeddyH 14. Sep 2008 10:11

Re: Brauche Hilfe in Delphi
 
Hallo und Willkommen in der DP :dp:,

schau mal z.B. hier.

Matze 14. Sep 2008 10:33

Re: Brauche Hilfe in Delphi
 
Hallo,

hier gibt es sogar eine Musterlösung, wenn man so will. Nutze zukünftig bitte die Suchfunktion, denn da wärst du sicher fündig geworden und erhälst sogar schneller eine Lösung als wenn du hier fragst. :-)

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

kompi19 14. Sep 2008 11:38

Re: Zufallszahlen ohne Zurücklegen
 
Problem geht weiter. Danke schon mal für die Hilfe.

Delphi-Quellcode:
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;
Manchmal ist eine Dopplung der 49 vorzufinden. Warum?


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