COLUMN

コラム

親子で楽しもう!Scratchプログラミング【9】
神経衰弱ゲームを完成させよう
村山 要司

2019/05/18

村山 要司

神経衰弱もいよいよ完成です!開いたカードの絵をチェックして、同じだったら開いたままにして、次のカードを開けるようにしましょう。そして完成に向かってGo!

1枚目のカードを覚えておく

前回は、クリックして開けるカードを2枚までにして、2枚開いたら、表にしたカードをクリックして裏に戻せるようにしました。今回は、開いたカードの絵をチェックして、同じだったら開いたままにして、次のカードを開けるようにします。

2枚目を開いたときに、1枚目の絵と比較をするために、1枚目の絵を覚えておく必要があります。

そのための変数「1枚目の絵」を用意しましょう。「変数」から、「変数を作る」をクリックし、「1枚目の絵」と「1枚目のカード番号」をつくります。

image

1枚目かどうか判別するために、「制御」の「もし…なら」ブロックを用意。

image

「開いた数」を使って判別しているブロックをコピーしましょう。「もし 開いた数 = 2 なら」から、「開いた数 = 2」をコピー。

image

コピーしたブロックを用意した「もし…なら」に、ハメ込んで、「2」のところを、「1」に変えます。

image

「変数」から「1枚目のカード番号を 0 にする」を「もし 開いた数 = 1 なら」の中にハメ込んで、「1枚目のカード番号」を「1枚目の絵に変更」し、「0」のところに、リストの「カードの絵の 1 番目」に。

image

「カードの絵の 1 番目」の「1」を「カード番号」に。

image

もう1つ、「1枚目のカード番号を 0 にする」を用意して、「0」を「カード番号」に。

image

これを「もし 開いた数 = 2 なら」の上に、ハメ込みます。いったん「もし 開いた数 = 2 なら」のブロックを外し、「もし 開いた数 = 1 なら」ならの下に、くっつけてからハメ直したほうが、うまくハマります。

絵のチェック

カードが2枚開いたら、絵をチェックするようにしましょう。「制御」の「もし…なら」と、「演算」の「… = 50」のブロックを用意。

image

左側に、変数から「1枚目の絵」をハメ込み、右側の「50」のところには、「カードの絵のカード番号番目」をコピーして、ハメ込みます。

image

リストの「カードの絵の 1 番目を なにか で置き換える」を「もし 1枚目の絵 = カードの絵のカード番号番目 なら」の中にハメ込み、「カードの絵」を「カードの状態」に変えます。

image

左側の「1」のところに、「カード番号」をハメ込み、右側の「なにか」は消して、「表のまま」と入力。

image

そのブロックをコピーして、「カード番号」を削除し、代りに1枚目のカード番号をハメ込みます。

image

「1枚目のカード番号を 0 にする」をその下にハメ込み、「1枚目のカード番号」を「開いた数」に変えます。

image

「開けるか を はい にする」のブロックをコピーして、その下に、ハメ込みます。

image

このブロックを「もし 開いた数 = 2 なら」の中の「開けるか を いいえ にする」の下にハメ込みます。

image

確認してみよう

開いたカードの絵が同じだったら、開いたままになるか確認してみましょう。同じカードになるまで、何度か、開いたり裏に戻したりを繰り返してください。

image

この例では3番と7番が同じ絵でした。カードの状態を見ると、「カードの状態」は「表のまま」になっているのがわかります。こうなると、そのカードをクリックしても、もう裏にはなりません。裏にするには、カードの状態が「表」でなければならないからです。

image

「開けるか」は2枚揃うとまた「はい」に戻るので、続けて「他のカード」を開くことができます。

image

揃った数を数える

開いたカードの絵が同じだったら、開いたままになるか確認してみましょう。同じカードになるまで、何度か、開いたり裏に戻したりを繰り返してください。

image

この例では3番と7番が同じ絵でした。カードの状態を見ると、「カードの状態」は「表のまま」になっているのがわかります。こうなると、そのカードをクリックしても、もう裏にはなりません。裏にするには、カードの状態が「表」でなければならないからです。

image

「開けるか」は2枚揃うとまた「はい」に戻るので、続けて「他のカード」を開くことができます。

image

全部揃ったら、文字を出す

全部揃ったら、完成を知らせる文字を出すようにしましょう。全部揃ったかどうかは、表の絵が6種類なので、「揃った数」が6かどうかで判断します。「制御」の「もし…なら」を「揃った数を1ずつ変える」の後に、ハメ込み、空欄に「演算」の「… = 50」をハメ込みます。

image

「… = 50」の左側の空欄に、変数の「揃った数」をハメ込み、右側の「50」は、「6」にします。

image

文字を用意する

文字は別のスプライトとして用意しましょう。画面右下のスプライトリストで、ネコに+マークがついているボタンから、「描く」をクリック。

image

コスチュームを描く画面に切り替わるので、「T(テキスト)」を選択して、文字を入力。

image

私は「Complete!!」と入力しました。

カーソルをテキストから外すと、青い枠と変形のハンドル(●や⇔)が出てきます。右上のステージを確認しながら、大きさや位置を調整しましょう。カーソルを枠に合わせてドラッグすると移動、●に合わせてドラッグすると、拡大縮小ができます。

image

色も変更できます。好きな色にしましょう。

image

文字のスプライトができたら、元のスクリプトを出しましょう。

image

「コード」をクリックして、画面右下のスプライトリストで「スプライト1」を選択します。スプライト1を選択しないと、何もブロックが出て来なくて、「消えてしまった!」と焦ったのではないでしょうか。Scratchのスクリプトはスプライトごとに組んでいきます。スプライト2はまだ作ったばかりで、ブロックを何も組んでませんから、出てこなくて当然なんですね。今まで組んでいたのは、スプライト1に対してのスクリプトだったのです。

他のスプライトのスクリプトを呼び出す

他のスプライトのスクリプトを呼び出すには、「メッセージ」を使います。「イベント」から「メッセージ1を送る」を「もし 揃った数 = 6 なら」の中にハメ込みます。

image

「メッセージ1を送る」の「メッセージ1」をクリックして、「新しいメッセージ」を選び、「全部揃った」というメッセージにします。

image
image

こんどはスプライト2の「Complete!!」の文字に対して、スクリプトを組んで行きましょう。スプライトリストの「スプライト2」を選択して、「イベント」から、「全部揃った を受け取ったとき」をスクリプトエリアにドラッグ。

image

「見た目」の「表示する」をその下にハメ込みます。

image

これでメッセージは出るようになったのですが、一度出るともう一回やろうとしたときも出っ放しになってしまいます。最初に表示されないようにしておく必要があります。

「イベント」の「(緑の旗のマーク)が押されたとき」を用意して、その下に「見た目」の「隠す」をハメ込みます。

image

これでついに完成です!

遊んでみよう!

変数とリストの表示のチェックをすべて外して出ないようにしてから、(緑の旗のマーク)をクリックして実行してみましょう。カードを2枚ずつ選択して絵が揃うと、開いたままになります。全部揃うと「Complete!!」の文字が出てきます。

image

もう一度(緑の旗のマーク)をクリックすると文字が消えて、また最初から遊べます。

さて、これでこの連載はおしまいですが、でもゲーム作りはまだはじまったばかり。ほんの取っ掛かりにすぎません。この連載を通して体験したプログラミングの楽しさを、今後に役立ててもらえたらと思います。

親子で楽しもう!Scratchプログラミング【9】神経衰弱ゲームを完成させよう
村山 要司

2019/05/18

村山 要司

関連記事

人気の記事
タグ一覧
バレッドキッズ新規生徒募集
バレッドアカデミー
バレッドキッズ先生募集