C言語のきほん「数当てゲーム 」答える回数を制限する

スポンサーリンク
Cプログラミング C言語

前回は、「数当てゲーム 」を「当てさせる数をランダム」にできるように改良した。

しかし、何度も答えていれば、いつかは当たる。そこで、答えられる回数を10回に制限するプログラムをご紹介しよう。

なお、本プログラムは、
 Windows 11 Home(23H2)上で、  Visual Studio Code(1.92.2)を使用して作成し、gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0で  コンパイルしている。

//数当てゲーム 答える回数を制限する

#include <time.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int no;
    int ans;
    const int max_stage = 10; //最大入力回数
    int remain = max_stage; //残りの入力回数

    srand(time(NULL));	//乱数のためを設定
    ans = rand() % 100;	//0~99の乱数を生成

      printf("0から99までの整数を当ててください!\n");

    do
    {
       printf("残りは%d回。いくつでしょう:",remain);
       scanf("%d",&no);
       remain--;	//残り回数をデクリメント

       if (no > ans)
        printf("もっと小さいです。\n");
       else if (no < ans) 
        printf("もっと大きいです。\n");

    } while (no != ans && remain > 0);

    if (no != ans)
	printf("残念。正解は%dでした\n",ans);
    else{
    
         printf("正解です\n");
         printf("%d回で当たりました。\n",max_stage - remain);
     }

    return 0;
}

実行結果1

0から99までの整数を当ててください!
残りは10回。いくつでしょう:49
もっと大きいです。
残りは9回。いくつでしょう:66
もっと小さいです。
残りは8回。いくつでしょう:54
もっと大きいです。
残りは7回。いくつでしょう:58
もっと大きいです。
残りは6回。いくつでしょう:60
もっと大きいです。
残りは5回。いくつでしょう:64
もっと小さいです。
残りは4回。いくつでしょう:63
もっと小さいです。
残りは3回。いくつでしょう:62
正解です
8回で当たりました。

実行結果2

0から99までの整数を当ててください!
残りは10回。いくつでしょう:48
もっと小さいです。
残りは9回。いくつでしょう:45
もっと小さいです。
残りは8回。いくつでしょう:34
もっと小さいです。
残りは7回。いくつでしょう:33
もっと小さいです。
残りは6回。いくつでしょう:30
もっと小さいです。
残りは5回。いくつでしょう:26
もっと小さいです。
残りは4回。いくつでしょう:23
もっと小さいです。
残りは3回。いくつでしょう:12
もっと小さいです。
残りは2回。いくつでしょう:23
もっと小さいです。
残りは1回。いくつでしょう:2
もっと大きいです。
残念。正解は7でした

実行結果1は、正解の例で、実行結果2は、不正解の例である。

これで、ゲームに緊張感が加わった。

参考)新・明解C言語 中級編 柴田 望洋(著)

コメント

タイトルとURLをコピーしました