徐々にできあがっていくわくわく感を体験!
プログラムを書いては実行を繰り返し徐々に完成していくとわくわくしますよね。ここでは、
最初に、
// [1]ヘッダーをインクルードする場所
// [2]関数を宣言する場所
プレイヤーが丁か半かを選択できるようにする
まず、main()関数の中でwhileでループするようにします。
// [2]関数を宣言する場所
// [2-1]プログラムの実行開始点を宣言
int main() {
    while (1)
    {
    }
}
プレイヤーからの入力を受け付けるために<conio.を、<stdio.をインクルードします。
// [1]ヘッダーをインクルードする場所
#include <stdio.h>  // [1-1]標準入出力ヘッダー
#include <conio.h>  // [1-4]コンソール入出力ヘッダー
whileループ内に、
while (1)
{
    // [2-2-2]プレイヤーが丁(偶数)か半(奇数)かを入力
    int in;
    do
    {
        printf("AI「丁(偶数)か半(奇数)か入力してください。」([0]丁 [1]半)\n");
        in = _getch() - '0'; // [2-2-3]文字を入力して数値に変換
    } while ((in != 0) && (in != 1));
    // [2-2-4]入力結果を出力
    printf("in:%d\n", in);
    if (in % 2 == 0)
        printf("あなた「丁(偶数)!」\n");
    else
        printf("あなた「半(奇数)!」\n");
}
実行すると、
サイコロを2つふる処理を実装する
乱数を扱うため<stdlib.と<time.をインクルードします。
// [1]ヘッダーをインクルードする場所
#include <stdio.h>  // [1-1]標準入出力ヘッダー
#include <stdlib.h> // [1-2]標準ライブラリヘッダー
#include <time.h>   // [1-3]時間管理ヘッダー
#include <conio.h>  // [1-4]コンソール入出力ヘッダー
乱数をシャッフルする処理を実装します。
int main() {
    // [2-2-1]乱数をシャッフル
    srand((unsigned int)time(NULL));
    while (1)
    {
        ...
    }
}
サイコロの目を取得する処理を実装します。
while (1)
{
    ...
    // [2-2-5]サイコロの目を取得
    int dice0 = 1 + rand() % 6;
    int dice1 = 1 + rand() % 6;
}
丁か半かの結果を出力する
最後に、
while (1)
{
    ...
    // [2-2-6]サイコロの目の結果を出力
    printf("AI「%d %d の", dice0, dice1);
    if ((dice0 + dice1) % 2 == 0)
        printf("丁(偶数)!」\n");
    else
        printf("半(奇数)!」\n");
    if ((dice0 + dice1) % 2 == in)
        printf("AI「あなたの勝ちです!」\n");
    else
        printf("AI「あなたの負けです!」\n");
    printf("\n");
}
おめでとうございます! ゲームが完成しました。
本書では、