C言語

【C言語】クイズゲーム作成(8)問題数を増やす

クイズゲーム作成(8)問題数を増やす

こんにちは、コンジ(@pippi_kon)です。

この記事では『C言語でのクイズゲームの作り方』をご紹介しています。

前回は、クイズの問題数を増やすための前段階として、問題を外部ファイル(テキストファイル)から読み込む方法をご紹介しました。

今回は、クイズの問題数を増やす方法をご紹介します。

クイズ問題リスト(テキストファイル)に全部で10問登録し、その中からランダムで5問出題するという形式です。

OS:Windows 10(x64)
開発環境:Visual Studio 2019(Community)

今回の目標

今回作成するプログラムの出力結果です。

[第1問]
日本の国鳥は?
1:キジ 2:ハト 3:スズメ
>>> 1
正解!

[第2問]
大正->昭和->○○->令和
○○に入る年号は?
1:慶応 2:明治 3:平成
>>> 3
正解!

[第3問]
日本の歴史上、期間のいちばん長かった年号は?
1:明治 2:大正 3:昭和
>>> 1
不正解…
正解は 3:昭和 です。

[第4問]
99歳のことを何という?
1:喜寿 2:米寿 3:白寿
>>> 2
不正解…
正解は 3:白寿 です。

[第5問]
世界三大珍味はどれ?
1:イカスミ 2:キャビア 3:チーズ
>>> 2
正解!

–クイズ終了–
[第1問]…○
[第2問]…○
[第3問]…×
[第4問]…×
[第5問]…○
あなたは 5 問中 3 問正解でした (正答率:60 %)

出題数から3問から5問に増えています。

また、今までにはなかった問題が出題されています。

 

クイズ問題ファイルの中身

 

前回から新たに7問追加し、全部で10問となりました。

 


プログラム全文

今回作成したプログラムのご紹介です。

のちほど、プログラムの解説を行います。

 

今回のプログラムでは、すべての問題をいったん構造体配列に格納し、その中からランダムで5問出題するという形になっています。

 

プログラムの解説

最大問題数用定数の追加

 

クイズの最大問題数を指定する定数「QUIZ_NUM_MAX」を追加しました。

それぞれの定数の使用目的は以下の通り。

定数 使用目的
QUIZ_NUM_MAX すべての問題数
QUIZ_NUM 出題する問題数

 

クイズを登録する構造体の容量アップ

 

quiz構造体にはすべてのクイズを登録します。

QUIZ_NUMのままだとすべて登録できないので、QUIZ_NUM_MAXに変更します。

 

クイズをランダム選択する範囲を変更

 

quiz構造体の全問題の中からランダム選択できるように範囲を変更します。

QUIZ_NUM → QUIZ_NUM_MAX

 


最後に

今回は、『クイズの問題数を増やす方法』をご紹介しました。

多くの問題の中からランダムで数問出題する…なんとなくクイズゲームっぽくなりましたね!

さらに問題数を増やしたい場合は、テキストファイルに問題を追加し、QUIZ_NUM_MAXの値を増やしてあげればOKです。

 

今回ご紹介した方法は、すべての問題をいったん構造体(メモリ)に登録し、その中からランダムで出題するという形式です。

作りはシンプルなのですが、問題数がどんどん増えていくと、その分メモリの使用量が増加してしまう欠点があります。

出題しない問題はメモリに保存しないような仕掛けにできるといいですね!

この辺りは次回以降ケアしていきます。

 

では今回はここまで。おつかれさまでした!

【2020年版】定番の解説本!C言語入門におすすめの参考書_サムネ
【2021年版】定番の解説本!C言語入門におすすめの参考書『C言語初心者にオススメしたいプログラミング参考書』をご紹介します。...
created by Rinker
¥2,750
(2021/05/18 10:49:56時点 Amazon調べ-詳細)

created by Rinker
¥2,530
(2021/05/18 10:49:57時点 Amazon調べ-詳細)

ABOUT ME
コンジ
コンジ
自分のやりたいことでお金を稼げる生活に憧れて脱サラ。 アプリ開発やブログ運営をしながらのんびり暮らしています。