Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi zufällig erstellte Zahlen (gleiche Zahlen verbieten) (https://www.delphipraxis.net/17464-zufaellig-erstellte-zahlen-gleiche-zahlen-verbieten.html)

Trouble_Maker 5. Mär 2004 21:27


zufällig erstellte Zahlen (gleiche Zahlen verbieten)
 
Hiho
hab da mal ne kleine Frage! Hier ist mein Code um zufällig Zahlen von 1 zu Maxelements (in meinem Fall 300) zu erstellen. Funktioniert ohne Probleme.

Delphi-Quellcode:
begin
    memo1.clear;
    image1.canvas.brush.color := clblack;
    image1.canvas.Rectangle(0,0,image1.width,image1.height);
    for i:= 1 to maxelements do begin
    p[i] := random(maxelements);
    image1.canvas.Pixels[i,p[i]] := clyellow;
end;
Doch wie muss ich den Code umschreiben, dass keine Zahl doppelt vorkommen darf, was ja hier der Fall ist!

Danke im Voraus


Trouble_Maker

SirThornberry 5. Mär 2004 21:46

Re: zufällig erstellte Zahlen (gleiche Zahlen verbieten)
 
folgender Source sorgt dafür das jede zahl nur einmal vorkommt, auf deinen source anpassen musst du selbst
Delphi-Quellcode:
var p: Array of Integer;
    i, a, maxelements, newzahl: Integer;
    schondrin: Boolean;
begin
    maxelements := 10;
    setlength(p, maxelements);

    for i:= 0 to maxelements - 1 do
    begin
      repeat
        schondrin := False;
        newzahl := random(maxelements);
        a := 0;
        while (a < i) and not(schondrin) do
        begin
          if p[a] = newzahl then schondrin := True;
          a := a + 1;
        end;
        until schondrin = false;
        p[i] := newzahl;
        memo1.Lines.Add(inttostr(p[i]));
    end;
end;

Trouble_Maker 9. Mär 2004 15:05

Re: zufällig erstellte Zahlen (gleiche Zahlen verbieten)
 
hey...

vielen Dank! Funktioniert super!


cu Trouble_Maker


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 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