カードを交換する

カードを交換する

change は、カードを交換する関数です。

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


/* カードを交換する */
void change(int player[5], int stack[52], int next) {
  int i;
  int flag[5];/* カードの交換フラグ */

  /* フラグを初期化する */
  for (i = 0; i < 5; i++) flag[i] = 0;

  /* 交換するカードを決定する */
  while (1) {
    printf("Please select the card(s) you want to change (1 - 5). ");
    printf("To finish, input 0.\n");
    scanf("%d", &i);
    if     ((1 <= i) && (i <= 5)) flag[i - 1] = 1;
    else if (i == 0)              break;
    else                          printf("Input Error!\n");
  } 

  /* カードを交換する */
  for (i = 0; i < 5; i++) if (flag[i] == 1) player[i] = stack[next + i];;
}