・演算/乱数の使い方
・変数と文字、複数の文字列のつなげ方 など
変数を使いながら、足し算や引き算のゲームを作っていきたいと思います!
ランダムで出題されるので、何度でも足し算の練習ができますね。
○背景とスプライトの追加
今回は、背景を「Underwater 1」、スプライト「Jellyfish」を選んでみました。
Jellyfishを真ん中(X=0、Y=0)に配置し、スプライト名は「くらげ先生」にしました。
いつものねこは今回ついに出番がないので、かわいそうですが削除しましょう。
削除は、スプライト選択の右上ののボタンから行うことが出来ますよ。
背景とスプライト追加の設定後、以下のようになれば準備完了です。
○足し算の変数を作る
次に、足し算をする数の変数を作っていきましょう。
作り方は覚えていますか?
前回のチャプターでは、作った変数は「りんごの数」の1つだけでしたが、
今回は足し算をするので2つの変数が必要ですね!
今回は、それぞれ「数A」「数B」という名前で新しい変数を作りました。
この2つの変数を使って、
くらげ先生に、
「数A」+「数B」=?
と問題を出してもらえるようにすればいいのですが、
この「数A」と「数B」は色々な数字に変わってほしいですよね?
そんな時に使えるのが、「乱数」です。
○乱数の使い方
「乱数」というのは、一定の範囲内でのランダムな数のことです。
まずは、乱数のブロックを見てみましょう!「演算」欄の中にあります。
このブロックを使うと、指定した範囲の中でランダムな数を作ってくれます。
例えば、もともと入力されている「1から10までの乱数」の場合は、
「1、2、3、4、5、6、7、8、9、10」のうちの1個になる、ということです。
例)0.3から2.1、-1.0から5.0 など
今回は、一桁どうしの整数の足し算にしたいので、「1から9までの乱数」にすればよいですね。
これを、「数A」「数B」にセットすれば、毎回変わる数字にすることが出来そうです!
下のように、「数Aを0にする」ブロックの「0」の部分に、はめてみましょう。
「数Aを1から9までの乱数にする」ブロックを作ることができました!
数Bについても同様に作って、「ずっと」ブロックの中に配置しましょう。
これで、2つの変数「数A」「数B」を毎回ランダムな数に設定することができます。
次は、くらげ先生の出題のセリフ(「数A」+「数B」=?)の部分を作りましょう!
○変数と文字列のつなげ方
<入門編>2-1ねことお話ししよう!のチャプターで、
ねこに名前を聞いてもらい、
その答え(例:Anks)を使って、
「Anksさん、よろしくね!」とあいさつしてもらうプログラムを作ったのを覚えていますか?
このケースでは、のブロックを使って、「答え」と「さん、よろしくね!」の2つを結合しました。
今回は、その応用編です。
変数と文字列についても同じように結合すれば良さそうですが、
例えば、数Aが3で、数Bが4のとき、「3+4=?」と聞いてもらうにはどうすればよいでしょうか?
分解すると、「数A」と「+」と「数B」と「=?」の4つをつなげる必要がありそうです。
そんな時には、下図のように、をいくつも使って合体させることで、複数の欄を作ることができます!
この4つの欄に、
それぞれ、「数A」「+」「数B」「=?」を入れてつなげれば、
足し算の問題文が完成です。
あとは、「~と聞いて待つ」のブロックに入れて配置しましょう。
これで、何度もランダムで足し算の問題を出す部分のスクリプトは完成しました。
試しに旗のボタンを押してみてください。
無事、くらげ先生が問題を出してくれましたでしょうか?
あとは、正解と不正解のときのリアクションの分岐を作っていきましょう!
○正解と不正解の分岐を作る
もし正解なら、くらげ先生が「正解!」と言い、
不正解(=つまり、正解でなければ)なら「ざんねん!正解は~」と言う、、、
これを実現するには、<入門編>2-3で練習したひよこの当たり判定と同じ、
「もし~なら、でなければ~」のブロックが使えそうです!
(<入門編>2-3で作ったひよこの当たり判定)
足し算に正解した、という条件はどのように表現すれば良いでしょうか?
言った「答え」が、
ちゃんと「数A」+「数B」(→つまり、正解の数)と等しくなっていればいいですね。
この「答え」=「数A」+「数B」という条件は、
「演算」欄の中のと
のブロックを組み合わせて、
以下のように表現することができます。
この条件を「もし~なら、でなければ~」のブロックにはめて配置しましょう!
あとは、それぞれ「セリフ」、「コスチューム」、「効果音」を設定していきます。
○セリフ
正解のときは、「正解!」と2秒言い、
不正解のときは「ざんねん!正解は~(←正解の数)」と2秒言うようにします。
正解の数は、先ほどと同じように「数A」+「数B」で表現できますね!
(紛らわしいですが、不正解の時は残念ながら「答え」が間違っているので、「答え」ブロックは正解の数として使えません)
【正解のとき】
【不正解のとき】
それぞれのブロックを配置すると、以下のようになります。
○コスチュームと効果音
最後に、正解、不正解に合わせたくらげ先生のコスチュームと効果音を設定しましょう。
今回のような動きの無いゲームでも、イラストの変化や効果音を付けることで演出を盛り上げることができます!
【正解のとき】
コスチューム:「jellyfish-d」、効果音:「Doorbell」
【不正解のとき】
コスチューム:「Jellyfish-b」、効果音:「Boing」
それぞれブロックを配置して設定すると、以下のようになります。
注意点は、「~と2秒言う」よりも前に設置することと、
繰り返し最初の出題に戻る時に、元のコスチューム「jellyfish-a」になるようにすることです。
コスチュームと効果音の設定が完了したら、くらげ先生の足し算ゲームは完成です!
旗のボタンでスタートしてみてうまく動いていますでしょうか??
よく使うものから慣れていきましょう。
次回は、簡易的なタイマーやストップウォッチを作りながら、ゲームによくある時間制限の作り方について導入していきます!
なお、以下に引き算のパターンも概要を紹介しておきますので、もしよろしければご覧いただければと思います。
今回も、ありがとうございました。
→次回 <入門編>3-3 タイマーとストップウォッチを作ろう!(時間制限) に進む
○引き算ゲームの作り方
足し算ゲームと同じように、
くらげ先生が引き算の問題を出し続けるプロジェクトを紹介しておきます。
繰り下がりのある引き算(例:17-8=9 など)も含めて、
正解が必ず一桁(1~9)になる問題がランダムに出題されるので、何度も引き算の練習ができます!
完成後のスクリプトはこちらです。
赤い矢印の部分が、足し算のパターンと差し替えられたブロックです。
ポイントは、①の部分になります。
引き算の場合、数Aの範囲が9より大きくなってしまう(最大が、18-9=9のときの18)ので、
順番を変えて、まず数Bの乱数1~9を作ります。
そのあとで、「数A」を「数Bより1大きい数」から「数Bより9大きい数」の間の乱数にすることで、
引き算(数A-数B)の正解を必ず1~9にすることが出来る、というわけです。
残りの差し替えられた箇所(②~④)は、すべて足し算の式(数A+数B)を引き算の式(数A-数B)に変えたものになります。
このようにいくつかのブロックの差し替えで、引き算のケースも作ることができます。
掛け算の場合は、足し算の「+」の部分をすべて「×」に変えればいいだけなので、引き算よりも簡単に作ることができますので、よろしければお試しください。
→次回 <入門編>3-3 タイマーとストップウォッチを作ろう!(時間制限) に進む