カードを混ぜる

カードを混ぜる

shuffle は、1 組 52 枚のカードを混ぜるサブルーチンです。

rand 関数を利用して 1 組のカードを混ぜています。


#カードを混ぜる
sub shuffle {
  local($index, @flag);

  #擬似乱数を初期化する
  srand:

  #カードを混ぜる
  for (0 .. 51) {#1 組 52 枚のカード
    #未使用カードを探す
    while (1) {
      $index = int(rand(52));
      last if (!$flag[$index]);
    }

    #カードを設定する
    $stack[$_] = $index;

    #フラグを使用済にする
    $flag[$index] = 1;
  }
}