08/11/15 16:47:28
>>117
人間が手でやるとしたら1から80までのカードを作ってかき混ぜるでしょうから
コンピューターでもそうやるほうが自然ではないかと思います。(作ってみたらこっちの方がわかりやすいとオモウ)
// Num1 と Num2 の値を入れ替える
procedure SwapNumbers(var Num1, Num2: integer); //inline;
var
TempNum: Integer;
begin
TempNum := Num1;
Num1 := Num2;
Num2 := TempNum;
end;
// Numbers のシャッフル:奥村先生のコードを移植.
procedure Shuffle(var Numbers: array of integer);
var
i1, i2: Integer;
begin
for i1 := High(Numbers) downto 1 do
begin
i2 := Random(i1 + 1);
SwapNumbers(Numbers[i1], Numbers[i2]);
end;
end;
var
Numbers: array [1..80] of integer;
begin
Randomize;
for iNum := Low(Numbers) to High(Numbers) do
Numbers[iNum] := iNum;
Shuffle(Numbers);