home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
magazine
/
pcmagazi
/
1991
/
14
/
shuffle.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-07-02
|
1KB
|
45 lines
SHUFFLE.PAS COMPLETE LISTING
PROGRAM demonstrate_shuffling;
VAR
deck : ARRAY[1..52] OF Integer; {or of anything else}
saved, i, j : 1..52;
BEGIN
{place initial values in array}
FOR i := 1 TO 52 DO
deck[i] := i;
{seed random number generator}
Randomize;
{here's the guts of it}
{shuffle the array - pass *once* through the array, swapping each element
with another, randomly chosen, element}
FOR i := 1 TO 52 DO
BEGIN
{find another element to swap with. Random returns value between
0 and 51, so must add 1}
j := Random(52)+1;
{make sure not swap element with itself}
WHILE j = i DO
j := Random(52)+1;
{perform the swap}
saved := deck[i];
deck[i] := deck[j];
deck[j] := saved
END;
{output for testing purposes}
FOR i := 1 TO 52 DO
BEGIN
Write(deck[i]:3);
IF i MOD 10 = 0 THEN WriteLn;
END;
WriteLn;
END.