カードを混ぜる

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

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


#カードを混ぜる
sub shuffle {
  local($s);

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

  foreach $s ("S", "H", "D", "C") {#1 組 52 枚のカード
    for (1 .. 13) {
      push(@deck, "$s$_");
    }
  }

  #@deck から 1 枚ずつ @stack に移動する
  while ($#deck >= 0) {
    push(@stack, splice(@deck, int(rand($#deck + 1)), 1));
  }
}