メイン関数

main は、「ブラックジャックの C 言語プログラム」のメイン関数です。

必要な関数を呼び出して、全体を制御しています。


main () {
  int  n;
  int  nround;            /* ラウンド数 */
  int  next;              /* 次に配るカード */
  int  nPlayerHands,      /* プレーヤーの手札の枚数 */
       nDealerHands;      /* ディーラーの手札の枚数 */
  int  PlayerPoint,       /* プレーヤーの合計点数 */
       DealerPoint;       /* ディーラーの合計点数 */
  char PlayerHands[21][4],/* プレーヤーの手札 */
       DealerHands[21][4];/* ディーラーの手札 */
  char stack[52][4];      /* 1 組 52 枚のカード */

  /* カードを混ぜる */
  shuffle(stack);

  nround = next = 0;
  while (52 - next > 10) {
    printf("--- Round %d ---\n", ++nround);

    /* カードを配る */
    nPlayerHands = nDealerHands = 2;
    for (n = 0; n < nPlayerHands; n++) strcpy(PlayerHands[n], stack[next++]);
    for (n = 0; n < nDealerHands; n++) strcpy(DealerHands[n], stack[next++]);

    /* 合計点数を計算する */
    PlayerPoint = calc(nPlayerHands, PlayerHands);
    DealerPoint = calc(nDealerHands, DealerHands);

    /* プレーヤーの処理を行う */
    player(&next, stack, &nPlayerHands, PlayerHands, &PlayerPoint,
                          nDealerHands, DealerHands,  DealerPoint);

    /* ディーラーの処理を行う */
    dealer(&next, stack, PlayerPoint, &nDealerHands, DealerHands, &DealerPoint);

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

  printf("--- Dealer doesn't have enough cards to continue. ---\n");
}