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

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

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

文系でもわかるBASIC入門

14.算数ドリルを作ってみよう 完結編

[ 13. 算数ドリルを作ってみよう ] の続きです。
前回は、問題の種類や出題数を決定後
スペースキーが押されるまで待つプログラムを作りました。
そのプログラムは保存してありましたか?

 

1. INT関数

これからドリルを作る上で、新しく2つの関数が必要になります。

1つ目はINT関数です。

basic int 整数にする方法

INT関数は、小数点以下を切り捨てて整数値を得ます

INT

行番号30 では、変数aa にINTを付けてます。
実行結果を見てもらえば分かりますが
変数aa の内容は123.457だったのに、小数点が切り捨てられ123となってます。

 

2. RND関数

2つ目はRND関数です。

basic rnd 乱数を発生させる

RND関数は、乱数(ランダムな数値)を発生させます

乱数は0以上1未満の数値が作られます。

FOR NEXT を使い、RNDを5回実行してみました。
実行結果を見ると1未満の数値であることが分かると思います。

 

RND関数で作った数値をそのまま使う機会は少ないと思います。
実際に使う時には、それなりに加工が必要です。

乱数の作り方

行番号20 を見て下さい。
RND関数に100を掛けています。
実行結果はご覧の通り、整数部分が出てきました。

 

rnd int で任意の乱数を作る

行番号20 を見て下さい。
RNDに100を掛けINTで括りました。
実行結果は、整数部分のみが残りました。

このようにINT関数とRND関数を使って、任意の乱数を作ります。

 

3. 出題する仕組みを作る

次の画面を見て下さい。

乱数を使って問題を作成

スペースキーが押されたら、足し算を10回出題するプログラムを作ってみて下さい。
足し算は1桁の計算とします。
入力された数の答え合わせも行い、最後に正解数を表示させます。

問題を作るには、先程覚えた乱数も使います。
がんばってみて下さい。

 

それでは解答です。

乱数を使い問題を作る

行番号340 からが新しく追加されたプログラムです。

行番号370 の乱数の使い方を説明します。
RNDに9を掛けたことで0以上9未満の数値ができます。
0 ~ 8.999999
それに1を足すと1以上10未満に。
1 ~ 9.999999
これにINTを使うことで1から9の整数を作ることができます

行番号390 の PRINT文で最後にセミコロン(;)が付いてます。
これは表示を改行させない為のものです。

行番号440 では答え合わせを行い、正解なら正解数をカウントします。

 

行番号370 から 440 までのようにインデント(先頭に空白を作る)をすることで
プログラムが見易くなります。
見易さに対しては、いろいろと工夫してみましょう。

 

4. 出題数を選択式にする

このドリルでは出題数を選択できるように考えてます。
出題数を10問、20問、30問と変更できるようにしてみましょう。

それでは解答です。

算数ドリルをbasicで作成

行番号190 で変数NOに番号を入力させ
その番号から出題数をセットしていきます。

行番号200 から 220 で、変数MAXを作りこの中に出題数を入れてます。

行番号360 のFOR命令に、変数MAXで繰り返し回数を指定します。

FOR I=1 TO MAX

これで1からMAXの数だけ繰り返します。

 

5. 計算タイプを選択式にする

このドリルでは計算タイプを選べるように考えてます。
足し算、引き算、掛け算の3つのタイプを選べるように変更しましょう。

次の画面は掛け算を選んだ時のものです。

算数ドリルを作ってみよう

どのようにプログラムを変更するかイメージできましたか?
とりあえずチャレンジしてみましょう。

 

それでは解答です。

basic 初心者の為のプログラミング入門

行番号120 で変数SWに番号を入力させ
その番号から計算タイプを設定していきます。

行番号130 から 150 で、文字列変数KIGO$の中に四則演算の記号を入れていきます。

行番号390 では、文字列変数KIGO$を使って計算式を表示します。

PRINT AA;KIGO$;BB;”=”;

行番号410 から 430 では、答え合わせをする為の計算を行っています。

 

これで算数ドリルは完成しました。
説明し易くするためシンプルにしたので、物足りなさを感じるとは思います。

 

6. プログラミング技術を身に付けるために

サンプルを打ち込んで実行しているだけでは身に付きません。
プログラムを改造することが一番身に付く方法なのでどんどんしましょう

今回のサンプルで改造ポイントを考えてみましょう。
簡単なものでは

・メッセージをもっと丁寧にする
・正解、不正解を入力後すぐに表示する

というような改造がいいですね。

 

ちょっと難しい所では

・2桁の計算にする
・割り算を追加する

もっと難しいものでは

・一番最後に、すべての解答結果を表示する

などが考えられます。
すべての解答結果を表示する為には、まだ教えていない配列変数を使う必要があります。

やる気のある方は、ヘルプやネットで調べてチャレンジしてみて下さい。