unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
Button1: TButton;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
const
KartenAnzahl = 25;
var
Form1: TForm1;
Karten:
array of integer;
implementation
{$R *.dfm}
//Die Zahlen Z1 und Z2 vertauschen
procedure Swap(
var Z1, Z2: integer);
var Temp: integer;
begin
Temp := Z1;
Z1 := Z2;
Z2 := Temp;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
KartenIndex1, KartenIndex2: integer;
begin
SetLength(Karten, KartenAnzahl);
//Array füllen
for i := 1
to KartenAnzahl
do
Karten[i] := i;
//Karten mischen:
for i := 1
to 100
do //Anzahl der Vertauschdurchgänge
begin
KartenIndex1 := random(KartenAnzahl) + 1;
repeat
KartenIndex2 := random(KartenAnzahl) + 1;
until
KartenIndex2 <> KartenIndex1;
Swap(Karten[KartenIndex1], Karten[KartenIndex2]);
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeAndNil(Karten);
end;
end.