この連載では、Scratchを使って、ゲームをつくりながらプログラミングを楽しんでもらいたい!と考えています。しかも子どもだけでなく、大人も一緒に。第7回は「カードの絵」をシャッフル!「カードの絵」に入っているコスチューム番号の順番をランダムに並べ替えます。
入れ替えに必要な変数をつくろう
並べ替えは、1番の「カードの絵」から順番に、乱数で出た「カードの絵」と入れ替えるという手法を使います。
まず乱数で出たカード番号を取っておくために、変数「入れ替えるカード番号」をつくりましょう。
「変数」から「変数をつくる」をクリック。

「新しい変数名:」に、「入れ替えるカード番号」と入力し「OK」をクリック。

変数「入れ替えるカード番号」ができます。

同様に、変数「元の絵」を用意しましょう。「元の絵」は、カードを入れ替えるときに、元の絵の値を取っておくための変数です。

入れ替えのためのテクニック
「カードの絵」の値を入れ替えるときには、ちょっとテクニックが必要です。たとえば1番と5番を入れ替えるとします。

【ステップ1】1番の「カードの絵」を「元の値」にコピー

【ステップ2】5番の「カードの絵」を1番の「カードの絵」にコピー

【ステップ3】「元の値」を5番の「カードの絵」にコピー

こうして手順を追っていくと、どんなふうにブロックを組めばいいのかわかってきます。なぜ「元の絵」の変数を用意したのか、わかりましたか?
元の絵を取っておかずに、ステップ2のコピーをやってしまうと、どちらも同じ値になってしまい、入れ替えができなくなってしまうからなんですね。では、今からブロックで組みましょう。
入れ替えるカードを指定する
「カード番号を1ずつ変える」をスクリプトエリアにドラッグ。

「カード番号を 0 にする」をその下にはめ込み、「カード番号」の文字の横にある▼の部分をクリック。「入れ替えるカード番号」に変更します。

「演算」の「1から 10 までの乱数」を「入れ替えるカード番号を 0 にする」の「0」のところにはめ込み、「10」を「12」にします。

コメントを読む・書く