初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

Small Basic 入門

9.穴埋め算数ドリルを作ろう

 

前回の「数当てゲーム」よりもレベルを少し上げたプログラムに挑戦しましょう。

 

 

穴埋めタイプのドリル

普通の算数ドリルを作ってもツマラナイので、穴埋めタイプのドリルにします。

穴埋めタイプの問題を作成する

足し算を10問出題します。
?=の後に答えを入力してもらい、毎回、正解か×を表示します。
最後には正解数も表示しますよ。

こんな感じで、少し実践的なプログラムになります。

 

 

カーソル位置を意識しよう

表示の基本となる部分を作っていきます。
問題は10問あるので、For文で仮表示をします。
仮表示とは、位置取りなどをみるためにとりあえず何かを表示させることです。

テキストの仮表示をする

説明文と問題が続けて表示されています。
ちょっと狭苦しいですね。

 

説明と問題の間を1行空けます。
知っている命令だけでやってみましょう。

空白行を入れる

WriteLine( )のダブルコーテーションの中に何も記述しなければ 改行だけ行われます
しかし、この方法は実用的ではありません。
例えば、5行の空白を作りたいとき WriteLine( ) を5回書くことになります。

 

 

メッセージを適切な位置へ表示したいときは TextWindow.CursorTop を使います。
これは現在のカーソル行を取得したり、カーソル行を指定することが可能です。
次のサンプルを見てください。

カーソルの位置を制御する命令

トマト 0 と表示されてます。
最上段は0行目ということを現しています。
コンピュータは0から数を数え始めるパターンが多いです
いちごは0から数えて2行目ですね。

メロンに注目してください。
メロンを表示する前に CursorTop = 10 を実行したため、カーソルは10行目に移動しています。
結果として10行目にメロンが表示されました。

 

 

それではドリル制作に戻ります。
CursorTop を使って1行空白を作ってみましょう。

CursorTopを使って1行空白を作る

4行目のように現在の行を取得して、1を足してあげれば良いのです。
5を足せば5行の空白を作れます。

 

 

保存しよう

ここでプログラムを保存しましょう。
開発中の保存は習慣にした方がいいです。

プログラムを保存する

 

保存先のフォルダを決め、ファイル名を入力して保存をクリックします。

プログラムを保存する

バージョン管理ツールを使っていない人は、ファイル名に番号を付けて保存するのもオススメです。
開発途中のファイルを残すと、途中からやり直したいときに便利です。
バージョン管理ツールって何? と思った人は検索しましょう。

 

 

乱数で問題を作成しよう

ドリルの問題を作ります。
実行するたび問題を変えたいので乱数 Math.GetRandomNumber( ) を使います。
乱数の範囲は1から9までとします。

足し算ドリルの問題を作成

乱数は前回も使っているので、難しい所はないと思います。

 

 

穴埋めの場所を決めよう

穴埋めする場所を乱数で決めます。
A + B = C
という計算式であれば、穴埋めの対象は ABC の3箇所です。
1から3までの乱数を作り、条件文を使って問題の表示内容を変更します。

計算の穴埋めをする場所を乱数で決める

実行するたびに問題の内容も、穴埋めの場所(?の位置)も変わります。

 

 

上記のプログラムでは IF 文を3つ使っていますが、別の書き方もあります。

if elseif elseを使って判断する

16行目で ElseIf を使っています。
1つ前の If の条件に合わなかった時、ElseIf の条件判断が行われます。
18行目の Else は、上の2つの条件に当てはまらない時に実行されます。

今回はこちらのプログラムで進めます。

 

 

IF と ELSE について

先ほどのプログラムでは Else の良さが伝わらないと感じたので違うサンプルを用意しました。

if elseの使い方

乱数を10回発生させて7の時だけ大吉を表示するプログラムです。
Else を使えば、7とそれ以外の処理が簡単に書けます。

先ほど使用した ElseIf は、それ以外の中から条件を絞り込むのに適しています。
状況に合わせて使い分けましょう。