プレーヤーの処理を行う

player は、プレーヤーの処理を行う関数です。

プレーヤーは、スタンド(ステイ)とドロー(ヒット)はできますが、以下の選択肢(オプション)はありません。

  • ダブル・ダウン
  • スプリット
  • サレンダー
  • インシュランス

/* プレーヤーの処理を行う */
void player(int *next, char stack[52][4], 
            int *nPlayerHands, char PlayerHands[21][4], int *PlayerPoint,
            int  nDealerHands, char DealerHands[21][4], int  DealerPoint) {
  int i;

  while (1) {
    /* カードを画面に表示する */
    display(0, *nPlayerHands, PlayerHands, *PlayerPoint,
                nDealerHands, DealerHands,  DealerPoint);

    /* プレーヤーの処理を行う */
    printf("  Draw(1) or Stand(2) or Quit(0)? : ");
    scanf("%d", &i);
    if        (i == 1) {/* カードを引く */
      printf("  Draw\n");
      strcpy(PlayerHands[(*nPlayerHands)++], stack[(*next)++]);
      *PlayerPoint = calc(*nPlayerHands, PlayerHands);
      if (*PlayerPoint == 0) break;
    } else if (i == 2) {/* カードを引かない */
      printf("  Stand\n");
      break;
    } else if (i == 0) {/* 終了する */
      exit(0);
    } else  {
      printf("Input Error!\n");
    }
  }
}