さて、これまでにいくつかの命令を覚えてきました。
画面に表示しなさい PRINT
何かを入力させなさい INPUT
繰り返し処理しなさい FOR
途中で繰り返しを抜けなさい BREAK
もしも~なら~しなさい IF
適当な数字を選びなさい RND
※わからない場合や、忘れている人は前のを読んでください。
これを組み合わせると、数当てゲームを作ることができます。
数当てゲームのルールをまず決めます。
それを仕様を考えるといいます。
数当てゲームといえど、ルールによって面白さが変わってきます。
どうすれば面白くなるか考えながらルールを考えていきます。
たとえば、1から99まで数を5回までに当てるということにします。
1回であたれば、「あなたてんさい!」と表示しましょう
2回であたれば、「すごい!」と表示しましょう。
3回であたったら「よくできました」と表示しましょう。
4回であたったら「まぁまぁかな」と表示しましょう。
5回であたったら「ふつうです」と表示しましょう。
正解しなかったら、「ざんねんでした答えは○○です」を表示しましょう。
そして外れるごとに、答えより大きかったか小さかったか教えて上げます。
では、命令形式で書いてみましょう。
変数NUMに5を入れなさい
変数SEIKAIFLGに0を入れなさい
変数ANSに0から98の乱数+1を入れなさい
"サンディ:わたしがあたまにおもいうかべた1から99のかずをあててね"を表示しなさい
変数Iに1から5まで1ずつ増やしながら次の処理を繰り返しなさい
"かずをにゅうりょくしてください"を表示して入力させKAZUにいれなさい
もし、KAZUとANSが同じ場合
SEIKAIFLGに1を入れなさい
もし、Iが1の場合
"あなたてんさい!"を表示しなさい
もし、Iが2の場合
"すごい!"を表示しなさい
もし、Iが3の場合
"よくできました"を表示しなさい
もし、Iが4の場合
"まぁまぁかな"を表示しなさい
もし、Iが5の場合
"ふつうです"を表示しなさい
判定終わり
繰り返しから抜けなさい
判定終わり
もし、KAZUよりANSのほうが大きい場合
"もっとおおきいですよ"を表示しなさい
その他の場合
"もっとちいさいですよ"を表示しなさい
判定終わり
繰り返し終わり
もしSEIKAIFLGが0の場合
"ざんねんでした、こたえはANSでした"を表示しなさい
判定終わり
では、プログラムを作って見ましょう
ANS=RND(99)+1
NUM=5
' せいかいのばあい1をいれる
SEIKAIFLG=0
PRINT "サンディ:わたしがあたまにおもいうかべた1から99のかずをあててね"
FOR I = 1 TO NUM
INPUT "かずをにゅうりょくしてください";KAZU
IF KAZU == ANS THEN
SEIKAIFLG = 1
IF I == 1 THEN
PRINT "あなたてんさい!"
ENDIF
IF I == 2 THEN
PRINT "すごい!"
ENDIF
IF I == 3 THEN
PRINT "よくできました"
ENDIF
IF I == 4 THEN
PRINT "まぁまぁかな"
ENDIF
IF I == 5 THEN
PRINT "ふつうです"
ENDIF
BREAK
ENDIF
IF KAZU < ANS THEN
PRINT "もっとおおきいですよ"
ELSE
PRINT "もっとちいさいですよ"
ENDIF
NEXT I
IF SEIKAIFLG == 0 THEN
PRINT "ざんねんでした。こたえは";ANS;"です。"
ENDIF
さて、実行してみましょう。
正解したパターンも載せますね。
ちなみに、今回IF文で1から5の判断をして文章を変えていますが、配列を使うともっとすっきりとした命令の仕方ができます。
次回、配列について学習しましょう。
画面に表示しなさい PRINT
何かを入力させなさい INPUT
繰り返し処理しなさい FOR
途中で繰り返しを抜けなさい BREAK
もしも~なら~しなさい IF
適当な数字を選びなさい RND
※わからない場合や、忘れている人は前のを読んでください。
これを組み合わせると、数当てゲームを作ることができます。
数当てゲームのルールをまず決めます。
それを仕様を考えるといいます。
数当てゲームといえど、ルールによって面白さが変わってきます。
どうすれば面白くなるか考えながらルールを考えていきます。
たとえば、1から99まで数を5回までに当てるということにします。
1回であたれば、「あなたてんさい!」と表示しましょう
2回であたれば、「すごい!」と表示しましょう。
3回であたったら「よくできました」と表示しましょう。
4回であたったら「まぁまぁかな」と表示しましょう。
5回であたったら「ふつうです」と表示しましょう。
正解しなかったら、「ざんねんでした答えは○○です」を表示しましょう。
そして外れるごとに、答えより大きかったか小さかったか教えて上げます。
では、命令形式で書いてみましょう。
変数NUMに5を入れなさい
変数SEIKAIFLGに0を入れなさい
変数ANSに0から98の乱数+1を入れなさい
"サンディ:わたしがあたまにおもいうかべた1から99のかずをあててね"を表示しなさい
変数Iに1から5まで1ずつ増やしながら次の処理を繰り返しなさい
"かずをにゅうりょくしてください"を表示して入力させKAZUにいれなさい
もし、KAZUとANSが同じ場合
SEIKAIFLGに1を入れなさい
もし、Iが1の場合
"あなたてんさい!"を表示しなさい
もし、Iが2の場合
"すごい!"を表示しなさい
もし、Iが3の場合
"よくできました"を表示しなさい
もし、Iが4の場合
"まぁまぁかな"を表示しなさい
もし、Iが5の場合
"ふつうです"を表示しなさい
判定終わり
繰り返しから抜けなさい
判定終わり
もし、KAZUよりANSのほうが大きい場合
"もっとおおきいですよ"を表示しなさい
その他の場合
"もっとちいさいですよ"を表示しなさい
判定終わり
繰り返し終わり
もしSEIKAIFLGが0の場合
"ざんねんでした、こたえはANSでした"を表示しなさい
判定終わり
では、プログラムを作って見ましょう
ANS=RND(99)+1
NUM=5
' せいかいのばあい1をいれる
SEIKAIFLG=0
PRINT "サンディ:わたしがあたまにおもいうかべた1から99のかずをあててね"
FOR I = 1 TO NUM
INPUT "かずをにゅうりょくしてください";KAZU
IF KAZU == ANS THEN
SEIKAIFLG = 1
IF I == 1 THEN
PRINT "あなたてんさい!"
ENDIF
IF I == 2 THEN
PRINT "すごい!"
ENDIF
IF I == 3 THEN
PRINT "よくできました"
ENDIF
IF I == 4 THEN
PRINT "まぁまぁかな"
ENDIF
IF I == 5 THEN
PRINT "ふつうです"
ENDIF
BREAK
ENDIF
IF KAZU < ANS THEN
PRINT "もっとおおきいですよ"
ELSE
PRINT "もっとちいさいですよ"
ENDIF
NEXT I
IF SEIKAIFLG == 0 THEN
PRINT "ざんねんでした。こたえは";ANS;"です。"
ENDIF
さて、実行してみましょう。
正解したパターンも載せますね。
ちなみに、今回IF文で1から5の判断をして文章を変えていますが、配列を使うともっとすっきりとした命令の仕方ができます。
次回、配列について学習しましょう。