カードを交換する

カードを交換する

change は、カードを交換するサブルーチンです。

捨てるカードを標準入力から受取り、代わりにカードの山から補充します。


#カードを交換する
sub change {
  local($i, @flag);

  #交換するカードを決定する
  while (1) {
    printf "Please select the card(s) you want to change (1 - 5). ";
    printf "To finish, input 0.\n";
    chomp($i = <STDIN>);
    if     ((1 <= $i) && ($i <= 5)) {
      $flag[$i - 1] = 1;
    } elsif ($i eq '0') {
      last;
    } else {
      printf "Input Error!\n";
    }
  }

  #カードを交換する
  for (0 .. 4) {
    $player[$_] = shift(@stack) if ($flag[$_]);
  }
}