前回は、「数当てゲーム 」を「当てさせる数をランダム」にできるように改良した。
しかし、何度も答えていれば、いつかは当たる。そこで、答えられる回数を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言語 中級編 柴田 望洋(著)
コメント