Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ARRAY mit einmalig verwendeten Zufallszahlen (https://www.delphipraxis.net/13436-array-mit-einmalig-verwendeten-zufallszahlen.html)

Kopfjaeger 18. Dez 2003 14:02


ARRAY mit einmalig verwendeten Zufallszahlen
 
Hallo,
ich will einem Array Zufallszahlen im Intervall 1 bis 32 geben. Dabei darf aber jede Zahl in diesem Intervall nur einem Index zugeordnet werden (soll ein Kartenspiel werden, jede Karte hat dann eine ID, die in dem Feld festgelegt wird). Ich könnte das z.Z. nur mit einer nahezu endlos erscheinenten Anzahl an Verkettungen von Schleifen realisieren. Ich denke/hoffe, dass das auch anders geht.

mfg
/Kopf

Sharky 18. Dez 2003 14:05

Re: ARRAY mit einmalig verwendeten Zufallszahlen
 
Hai Kopfjaeger,

Herzlich Willkommen in der Delphi-PRAXIS.

Schaue dir mal diesen Thread zum Thema Lottozahlen an.

Dort hatten wir eine tolle Diskussion zum Thema.

Kopfjaeger 18. Dez 2003 14:35

Re: ARRAY mit einmalig verwendeten Zufallszahlen
 
Ich danke für deine schnelle Antwort. :)
Ebenso bei Christian Seehase für seinen Quellcode in den genannten Thread. Läuft wunderbar und stabil. :)

mfg
/Kopf

Thunderchild 18. Dez 2003 15:03

Re: ARRAY mit einmalig verwendeten Zufallszahlen
 
Also eine einfache Lösung, die mir als erstes eingefallen wäre, ist Folgendes:

Geh in einer Schleife Deine Karten von 1 bis 32 durch und weise ihnen einen zufälligen Index für das Array zu.

Delphi-Quellcode:
var KartenStapel:array[1..32] of byte;
    index,karte:byte;
begin
  randomize;
  for index:=1 to 32 do KartenStapel[index]:=0; // sicherheitshalber initialisieren
  for karte:=1 to 32 do begin
    repeat
      index:=random(32);
    until KartenStapel[index]=0; // per Zufall leeren Platz finden
    KartenStapel[index]:=karte   // und da eine Karte ablegen
  end
end;


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