Small Basic 入門
9.穴埋め算数ドリルを作ろう
前回の「数当てゲーム」よりもレベルを少し上げたプログラムに挑戦しましょう。
穴埋めタイプのドリル
普通の算数ドリルを作ってもツマラナイので、穴埋めタイプのドリルにします。
足し算を10問出題します。
?=の後に答えを入力してもらい、毎回、正解か×を表示します。
最後には正解数も表示しますよ。
こんな感じで、少し実践的なプログラムになります。
カーソル位置を意識しよう
表示の基本となる部分を作っていきます。
問題は10問あるので、For文で仮表示をします。
仮表示とは、位置取りなどをみるためにとりあえず何かを表示させることです。
説明文と問題が続けて表示されています。
ちょっと狭苦しいですね。
説明と問題の間を1行空けます。
知っている命令だけでやってみましょう。
WriteLine( )のダブルコーテーションの中に何も記述しなければ 改行だけ行われます。
しかし、この方法は実用的ではありません。
例えば、5行の空白を作りたいとき WriteLine( ) を5回書くことになります。
メッセージを適切な位置へ表示したいときは TextWindow.CursorTop を使います。
これは現在のカーソル行を取得したり、カーソル行を指定することが可能です。
次のサンプルを見てください。
トマト 0 と表示されてます。
最上段は0行目ということを現しています。
コンピュータは0から数を数え始めるパターンが多いです。
いちごは0から数えて2行目ですね。
メロンに注目してください。
メロンを表示する前に CursorTop = 10 を実行したため、カーソルは10行目に移動しています。
結果として10行目にメロンが表示されました。
それではドリル制作に戻ります。
CursorTop を使って1行空白を作ってみましょう。
4行目のように現在の行を取得して、1を足してあげれば良いのです。
5を足せば5行の空白を作れます。
保存しよう
ここでプログラムを保存しましょう。
開発中の保存は習慣にした方がいいです。
保存先のフォルダを決め、ファイル名を入力して保存をクリックします。
バージョン管理ツールを使っていない人は、ファイル名に番号を付けて保存するのもオススメです。
開発途中のファイルを残すと、途中からやり直したいときに便利です。
バージョン管理ツールって何? と思った人は検索しましょう。
乱数で問題を作成しよう
ドリルの問題を作ります。
実行するたび問題を変えたいので乱数 Math.GetRandomNumber( ) を使います。
乱数の範囲は1から9までとします。
乱数は前回も使っているので、難しい所はないと思います。
穴埋めの場所を決めよう
穴埋めする場所を乱数で決めます。
A + B = C
という計算式であれば、穴埋めの対象は ABC の3箇所です。
1から3までの乱数を作り、条件文を使って問題の表示内容を変更します。
実行するたびに問題の内容も、穴埋めの場所(?の位置)も変わります。
上記のプログラムでは IF 文を3つ使っていますが、別の書き方もあります。
16行目で ElseIf を使っています。
1つ前の If の条件に合わなかった時、ElseIf の条件判断が行われます。
18行目の Else は、上の2つの条件に当てはまらない時に実行されます。
今回はこちらのプログラムで進めます。
IF と ELSE について
先ほどのプログラムでは Else の良さが伝わらないと感じたので違うサンプルを用意しました。
乱数を10回発生させて7の時だけ大吉を表示するプログラムです。
Else を使えば、7とそれ以外の処理が簡単に書けます。
先ほど使用した ElseIf は、それ以外の中から条件を絞り込むのに適しています。
状況に合わせて使い分けましょう。