Entwickler-Ecke

Sonstiges (Delphi) - Zahlen mischen


CyberStorm - Sa 19.10.02 20:37
Titel: Zahlen mischen
Hi,

Ich habe ein array Gefüllt mit Zahlen. Jede Zahl kommt dort einmal vor.

Wie kann Ich die Zahlen mischen?

mfg
Cyber


Christian S. - Sa 19.10.02 20:54

Hi!

Du schreibst in ein Array alle verfügbaren Postitionen, wählst mit dem Zufallsgenerator aus diesem Array eine Position aus, weist sie der ersten Zahl aus deinem Zahlenarray zu. Schmeist aus dem Positionarray die verwendete Position raus. Wählst per Zufallsgenerator aus dem (verkleinerten) Positionarray eine Position aus, weist sie der zweiten Zahl zu usw.

MfG,
Peter

P.s:Oder meinst du sowas [http://www.auq.de/viewtopic.php?t=3193]?


DeCodeGuru - Sa 19.10.02 20:58

Hier haste mal einen Ansatz, wie man sowas realisieren könnte. (Habe auf dem Rechner kein Delphi installiert -> nicht getestet).


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
var
  aZahlen: array [0..9] of Byte = (1,2,3,4,5,6,7,8,9,10);

implementation

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  tmp,j: Byte;
begin
  Randomize;
  for i := 0 to 9 do
  begin
    j :=Random(9);
    tmp := aZahlen[i];
    aZahlen[i] := aZahlen[j];
    aZahlen[j] := tmp;
  end;
end;


Es wäre vielleicht noch sinnvoll eine Abfrage einzubauen, die überprüft, ob die per Zufallsgenerator generierte Zahl schon verwendet wurde.

Hoffe, es hilft dir. :)