![]() |
mehrere Zufallszahlen, dürfen aber nicht gleich sein
Hallo,
ich müsste für ein Spiel 4 verschiedene Zufallszahlen erzeugen. Diese Zahlen dürfen auf keinen Fall gleich sein. Wie kann ich das verwirklichen? |
Re: mehrere Zufallszahlen, dürfen aber nicht gleich sein
Mit Hilfe der Forums-Suche.
Nur zwei Ideen auf die Schnelle: 1. Merk dir die gezogenen Zahlen und zieh noch mal, wenn du eine ziehst, die schon mal gezogen wurde. 2. Füll eine List mit den Zahlen, die gezogen werden dürfen und wähle davon zufällig vier Stück aus. |
Re: mehrere Zufallszahlen, dürfen aber nicht gleich sein
joar mit den Zahlen merken.
Kann ich das mit einer while Schleife machen? wen ja dann wie? |
Re: mehrere Zufallszahlen, dürfen aber nicht gleich sein
|
Re: mehrere Zufallszahlen, dürfen aber nicht gleich sein
Ok danke, ich wußte einfach nicht wonach ich suchen sollte.
Aber mit den Lottozahlen hätte ich auch selbst drauf kommen können. |
Re: mehrere Zufallszahlen, dürfen aber nicht gleich sein
Auf die Schnelle:
Delphi-Quellcode:
Da müsste man natürlich noch eine Funktion rausmachen oder so.
type
TIntArray = array of Integer; procedure TForm1.FormCreate(Sender: TObject); begin Randomize; end; procedure TForm1.Button1Click(Sender: TObject); function IsInIntArray(AIntArray: TIntArray; z: Integer): Boolean; var i: Integer; begin result := False; for i := 0 to length(AIntarray) - 1 do begin if z = AIntArray[i] then begin result := True; break; end; end; end; var IntArray: TIntArray; cnt: Integer; i: Integer; z: Integer; s: string; begin SetLength(IntArray, 4); cnt := 0; while cnt < 4 do begin z := Random(99); if not IsInIntArray(IntArray, z) then begin IntArray[cnt] := z; Inc(cnt); end; end; for i := 0 to length(IntArray) - 1 do s := s + IntToStr(IntArray[i]) + ' '; ShowMessage(s); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:20 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