見出し画像

しょぼいコードを積み上げる…計算問題を出題してくれるプログラム(C言語)~亀歩戦術日誌017~

こんにちは、こいずみりくです。

亀歩(かめほ)とは、小さな歩みを積み上げていくプロセスを表現した私の造語。プログラミングの勉強も、亀歩が大事だなと思う今日このごろ。

前回、「亀は好きですか」という問いにy、nで回答する小さなプログラムが完成した。

今回はこれを改造して、しょぼい計算練習のプログラムを作って、育てていきたい。

「3+2=?」を出題するプログラム

まずは、とにかく最低限だけ動くプログラムを作ろう。ということで最初は、たった1題、「3+2」を出題してくれるプログラムに挑戦。

動作画面その1

ユーザが数字を打ち込んで、正解だったら次のような画面で終了する。

動作画面その2

不正解の場合は、次のように再挑戦を促す。それで正解したらさっきの画面が出るし、5回連続で間違えるとゲームオーバーになる。

動作画面その3

このプログラム、実は前回作った「亀は好きですか」の大部分を使いまわして少し改造しただけ。実績のあるコードを使い回すのは、プログラミングでとても大事なことらしい。

「亀は好きですか」はyと答えるまで永遠にループする仕様だったが、今回は誤答を5回までにした関係で、少しだけ条件分岐を足してある。

ランダムに足し算を出題するプログラム

先ほどのプログラムを使いまわして、ランダムに足し算を出題するプログラムを作った。

動作画面その4

先ほどは「3+2」だけだったが、今回はランダムに数字を変えて一桁同士の足し算を出題してくれる。正誤判定の機能と、誤答時の再出題の機能は前作をそのまま流用している。

プログラミング的には、ランダムな数字の生成が新要素だ。また、今後の使い回しに便利なように、問題を作成するための命令群を自作の関数としてまとめておいた。

これで、しょぼいながらも計算練習をしている感じが出てきた。

足し算を10問出題するプログラム

先ほどのプログラムをさらに使いまわして、連続して10問出題してくれるように改造した。

動作画面その5

連続して同じ動作を何度も繰り返すので、自作の関数が力を発揮する。前作で実装した問題を生成する関数の他に、出題から正誤判定までの一連の命令軍も関数にまとめた。

あとがき

これを繰り返していけば、さらに立派なプログラムに育てていくことができるだろう。

今後追加したい機能は、引き算や掛け算の練習や2桁同士の問題を出題する上級モード、あとは10問正解するまでの時間を計測してタイムアタックができても楽しい。

今後も、進捗を随時報告する。

お知らせ。下記にて匿名での質問やメッセージを受け付けております。こんなプログラム作って!とか言われたら頑張っちゃう。でも、しょぼいコードしか書けないから、要望にお答えできない可能性も高いです。

頂いたメッセージは、記事内で紹介することがございます。

この記事が気に入ったらサポートをしてみませんか?