Einzelnen Beitrag anzeigen

gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Doppelte Zahlen beim Lotto Generator

  Alt 1. Apr 2006, 07:23
Guten Morgen, Allerseits.

Ich würde folgende Arrays anlegen:

AlleZahlen : array[1..49] of byte;
EineZiehung : array[1..7] of byte; // sofern eine Zeihung simuliert werden soll
EinEinsatz : array[1..x] of byte; // wenn zufällig erzeugte Einsätze für x Zahlen erzeugt werden sollen;

Jede erzeugt Zahl würde ich im Array AlleZahlen auf Null setzen, so dass ich bei der nächsten Zahl ganz einfach prüfen könnte, ob die Zahl bereits einmal erzeugt wurde. Das ganze so lange laufen lassen, bis die gewünschte Zahl von Zahlen erzeugt ist und abschließend das Array AlleZahlen wieder in den ursprünglichen Zustand verseten.

Delphi-Quellcode:
procedure Ziehung;
begin
  i := 1;
  repeat
    Ramdomize;
    zahl := random(49)+1;
    if AlleZahlen(zahl] <> 0 then
    begin
      EineZiehung[i] := zahl; // oder EinEinsatz[i] := zahl;
      AlleZahlen[i] := 0;
      inc[i];
    end;
  until i = 7; // oder i = x für Einsätze mit x Zahlen
  for i := 1 to 49 do AlleZahlen[i] := i;
end;
Ich habe das nur mal so schnell hingeschrieben und nicht getestet, weil ich im Büro kein Delphi auf dem Rechner habe, sollte aber klappen.

mfg gfjs
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat