スクラッチで「神経衰弱」をつくろう!Vol.03

スクラッチで作る「神経衰弱」、前回まででカードを並べる動きまでを作ることができました。しかしまだ1枚目のカードから規則正しく並んでいるだけですね。今回はカードをシャッフルして並べる方法を説明します。


ステップ1:順番を決める


①まずは変数「カードの数」を作ります。今回は20枚のカードで見本を作っていますが、カードを増やしたときに簡単に変更できるように、変数を作っておきましょう。


「リスト」という機能、使ったことありますか?簡単に言うと変数の集まりのようなもの。「変数」がいろいろ書き換えることができる1枚のメモだとしたら、「リスト」はそのメモをまとめたメモ帳のようなもの。各ページにいろいろなデータを書き込んだり読み込んだりすることができるわけですね?

 今回は1番目から20番目のカードのコスチューム番号を記録しておくための「順番」という名前のリストを用意します。

スクラッチで神経衰弱をつくる_01

③前回「並べる」という定義を作りました。今回は「シャッフル」という定義を用意しておきます。何をするためのプログラミングか名前を付けておきましょう。


「シャッフル」定義ではまず変数「カードの数」を指定します。お手本では20となります。

リスト「順番」の中身を、いったんリセット、空っぽにします。「リストのすべてを削除する」でリセットされますよ。

繰り返しでは、リスト「順番」の長さ(データの数)が、変数「カードの数」、つまり20になるまで繰り返します。何を繰り返すかというと、2から21までの乱数、つまり乱数で選ばれた「カードのコスチューム番号」をリスト「順番」に追加します。


⑤ではこれでリスト「順番」を確認してみましょう。

あれ?同じ番号が何回も出ていますね?同じカードは1枚しかないはずなので、これでは神経衰弱は成り立ちません。

スクラッチで神経衰弱をつくる_02

⑥では同じ数字が出現しないようにするには、どうすればよいでしょうか?

まず「乱数」という名前の変数を用意しておきます。先に変数「乱数」に2から21までの乱数をセット、その変数がリスト「順番」に含まれていないときだけ、変数「乱数」をリスト「順番」に追加」します。

このブロックはかなり複雑ですね?頭が混乱しそう。何度も繰り返し学習すると、徐々に理解が深まってくると思いますよ。ここ、詳しく学習したい方は教室に連絡くださいね?もちろんオンライン授業もやってますよ!


⑦「シャッフル」をクリックしてリスト「順番」を見てみましょう。今度は数字が重複していないようですね?ばっちりです!

スクラッチで神経衰弱をつくる_03

ステップ2:順番通りにカードを並べる


⑧ステップ1ではカードの順番を決めることができました。続いて決められた順番通りに並べてみましょう。

前回作った、定義「並べる」を改造しますよ。まず変数「No.」を準備します。変数「No.」の初期値を1にしておきます。数を数える変数なので、必ず半角で入力してくださいね!


⑨繰り返しの内部も改造します。

「自分自身のクローンを作る」ブロックの直前で、コスチューム番号を指定します。

【リスト「順番」の 変数「No.」番目】にしておきましょう。

クローンの後は変数「No.」を1ずつ増やしていきます。

ちょっとわかりにくいかな?1番最初はリスト「順番」の1番目になり、2番目はリスト「順番」の2番目、以降3番目、4番目、と順番にコスチューム番号が変っていきます。


⑩では「旗が押されたとき」のブロックに、定義「シャッフル」を追加して動かしてみましょう。


 神経衰弱の表面のカードが並びましたね?しっかりペアになっているはず。ペアになっていなかったら今回のプログラムに間違えがあるか?カードを作った時に3枚作ったか、1枚しか作っていなかったか???

いずれにしてももう一度プログラミングを見直してみましょう。

スクラッチで神経衰弱をつくる_04

さて、今回はここまで。

次回は一旦すべてカードを裏返して、カードをめくれるようにしてみましょう。


ファイブボックスではオンライン授業、体験授業も行っているので、今回の授業にご興味がありましたら、ぜひお問い合わせください。

お問い合わせは こちら から。

体験授業のお申込みは こちら から。


最新記事

すべて表示

ファイブボックス 上田教室