C言語

【C言語】クイズゲーム作成(1)簡単な三択形式の問題

【C言語】クイズゲーム作成(1)簡単な三択形式の問題_サムネ3

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

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

テキストベースのシンプルなクイズゲームですが、プログラミングの学習にはもってこいだと思っています。

段階を踏んで、徐々に凝ったものに改変していこうと思います。

まずはクイズプログラムの超基本となる『3択形式の問題の出力、および答えの入力・判定』についてです。

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

今回の目標

今回は初回の記事ということで、まずはクイズゲームのベースとなるシンプルな三択問題の作成を目指します。

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

[第1問]
リンゴは英語で何と言う?
1:apple 2:orange 3:banana
>>> 1
正解!

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

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

やっていることは以下の通り。

  1. 問題文および三択内容の表示
  2. 解答の入力
  3. 解答の判定

 

プログラム全文

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

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

 


プログラムの解説

scanfのエラー回避

先頭行のこれはscanf関数実行時に出力されるエラーを回避するものです。

この行がなかったらコンパイル時に以下のようなエラーが出力されます。

error C4996: ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

おまじないと思っていれておきましょう。

 

問題文の表示

シンプルにprintf関数で問題を表示しています。

最後の「>>> 」は特に深い意味はなく、単に解答を促している記号です。

今回は直接問題文を表示していますが、次回以降の記事でもっとスマートになるよう改変していく予定です。

 

解答の入力

scanf関数でキーボードの入力を取得します。

今回は「1」「2」「3」(いずれも半角数字)のいずれかの入力を期待しているので、整数型での入力の受け取りを行っています。

しかし、実際は「4」などの数字や、「c」などの文字も入力できてしまいます。

このあたりは次回以降の記事でケアしていきます。

 

解答の判定

if文で解答内容のチェックを行っています。

scanf関数で受け取った値…つまり、キーボード入力された値が正しければ「正解!」と表示します。

間違っていたら「不正解…」と表示した後、正解も表示します。

 



最後に

今回は、『基本となる3択形式の問題の出力、および答えの入力・判定』についてご紹介しました。

とても愚直でシンプルなプログラムですが、次回以降、徐々にパワーアップさせていきます。

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

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

created by Rinker
¥2,530
(2021/04/16 10:26:39時点 Amazon調べ-詳細)

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