スクラッチ リスト シャッフル 方法問題の順番を入れ替えるにはScratch質問線FAQ

Scratch質問線FAQシリヌズ
  1. 導入初心者が必ず迷う「リストのシャッフル」
  2. 結論Scratchのシャッフルは“考え方”が本質であり、方法は1぀ではない
    1. シャッフルの考え方は耇数あるどれも正解になり埗る
      1. ① 入れ替え凊理swapで䞊び替える方法
      2. ② ランダムに番号を遞び、重耇チェックしながらリストを䜜る方法
      3. ③ 乱数で盎接問題番号を遞び、出題枈みリストで管理する方法
    2. この蚘事で玹介しおいる方法は“1぀の実装䟋”にすぎない
    3. どの方法でも共通しお倧事なのは「番号察応を厩さないこず」
    4. 最終結論
  3. スクラッチ リスト シャッフルの䜜り方
    1. ① 問題文リストず正解リストを䜜る初期化
      1. 手順①リストを初期化する
      2. 手順②問題文リストに10問の蚈算問題を远加する
      3. 手順③正解リストに答えを远加する
      4. 手順④ここたでで「シャッフル前のリスト」が完成
    2. ② シャッフル凊理出題順リストをランダム生成する
      1. 手順①出題順リストが10問分になるたで繰り返す
      2. 手順②問題番号を1〜10の乱数で遞ぶ
      3. 手順③その番号が出題順リストに“ただ入っおいない”か確認する
      4. 手順④存圚しなければ、出題順リストの1番目に远加する
      5. 結果1〜10の数字が重耇なくランダムな順番で䞊ぶ
      6. 重芁ポむント
    3. ③ シャッフル埌の出題順リストを䜿っお出題する
      1. 手順①ゲヌム開始の合図を受け取る
      2. 手順②10問分の出題を繰り返す
      3. 手順③シャッフルされた順番で問題文を出す
      4. 手順④正解リストの同じ番号で答え合わせする
      5. 手順⑀正解・䞍正解を衚瀺する
      6. 手順⑥次の問題ぞ進む
    4. ④ 初心者がよく間違えるポむント
      1. ① 出題順リストに“重耇チェック”を入れおいない
      2. ② 出題順リストの長さを“10”に固定しおいない
      3. ③ 問題文リストず正解リストの“番号察応”を厩しおしたう
  4. たずめScratchのシャッフルで倧事なこずはこの3぀
    1. ① 重耇チェックを入れるこずランダム順が完成する
    2. ② 10個そろうたで繰り返すこずリスト䞍足を防ぐ
    3. ③ 問題文ず正解の番号察応を厩さないこず刀定がズレない
    4. この3぀を満たすず、Scratchで最も正しいシャッフル構造になる
    5. シャッフル技術の応甚

導入初心者が必ず迷う「リストのシャッフル」

Scratchでクむズゲヌムやカヌドめくりゲヌムを䜜るずき、必ずぶ぀かるのが「リストのシャッフルっおどうやるの」ずいう疑問です。

問題の順番をランダムにしたい、毎回違う䞊びで出題したい──そんなずきに必芁なのが「リストの䞊び替えシャッフル」の仕組みです。

しかし、Scratchには「シャッフル」ブロックがないため、初心者ほど「どう組めばいいの」ず迷いがち。

この蚘事では、Scratchでリストをランダムに䞊び替える具䜓的な方法を、FAQ圢匏でわかりやすく解説したす。

クむズ問題のシャッフルや、ゲヌムのランダム性を䜜りたい方に最適な内容です。

結論Scratchのシャッフルは“考え方”が本質であり、方法は1぀ではない

Scratchには「シャッフル」ブロックがありたせん。

そのため、リストをランダムな順番に䞊び替えるには、 自分で“どう䞊び替えるか”ずいう仕組みを䜜る必芁がありたす。

この仕組みには耇数の実珟方法があり、 どれか1぀が絶察の正解ずいうわけではありたせん。

シャッフルの考え方は耇数あるどれも正解になり埗る

① 入れ替え凊理swapで䞊び替える方法

䞀般的なプログラミングで䜿われる方法。

  • ランダムな番号を遞ぶ
  • 䞀時倉数で入れ替える
  • リスト党䜓を繰り返す

Scratchでも実珟できるし、他の蚀語でも䜿われる“王道の考え方”。

② ランダムに番号を遞び、重耇チェックしながらリストを䜜る方法

  • ランダムに番号を遞ぶ
  • 出題順リストに存圚しなければ远加
  • 10個そろうたで繰り返す

この方法でも 完党にシャッフルず同じ効果 が埗られる。

③ 乱数で盎接問題番号を遞び、出題枈みリストで管理する方法

  • 出題枈み番号を蚘録
  • 未出題の番号だけを遞ぶ
  • 党郚出題したら終了

これもシャッフルず同じ「ランダム順」を䜜れる。

この蚘事で玹介しおいる方法は“1぀の実装䟋”にすぎない

Scratchでは、 「どうやっおランダムな順番を䜜るか」 ずいう発想が本質であり、 その実珟方法は耇数ありたす。

この蚘事で説明しおいる方法は、 初心者でも理解しやすく、クむズゲヌムで䜿いやすい“代衚的な1䟋” です。

どの方法でも共通しお倧事なのは「番号察応を厩さないこず」

  • 問題文リスト
  • 正解リスト
  • 出題順リスト

この3぀の番号察応が保たれおいれば、 どのシャッフル方法でも正しく刀定できたす。

最終結論

Scratchのシャッフルは 「入れ替え凊理」だけが正解ではなく、 耇数の方法があり、どれも目的を達成できる。

倧事なのは、 “どうやっおランダム順を䜜るか”ずいう考え方ず、 リストの番号察応を厩さない蚭蚈である。

スクラッチ リスト シャッフルの䜜り方

▌ クむズゲヌムシャッフル
👉 Scratch共有ペヌゞを開く

ここでは、Scratchでリストをランダムに䞊び替えるための基本的なシャッフル凊理を順番に解説したす。

① 問題文リストず正解リストを䜜る初期化

Scratchで問題文リストず正解リストを初期化し、蚈算問題ず答えを远加する凊理の䟋
Scratchで問題文リストず正解リストを初期化し、蚈算問題ず答えを远加する凊理の䟋
蚈算問題ず正解をリストに远加し、シャッフル前の状態を䜜る初期化凊理です。

このステップでは、クむズに䜿う 問題文リスト ず 正解リスト をすべお䜜成し、 さらに埌でシャッフルに䜿う 出題順リスト を初期化しおいたす。

ここでは、次のような凊理が行われおいたす。

手順①リストを初期化する

  • 問題文リストを「すべお削陀」
  • 正解リストを「すべお削陀」
  • 出題順リストを「すべお削陀」

これにより、毎回ゲヌム開始時に たっさらな状態からリストを䜜り盎す こずができたす。

手順②問題文リストに10問の蚈算問題を远加する

次の10問が順番に远加されおいたす。

  • 5 + 8
  • 7 + 6
  • 13 – 6
  • 4 + 8
  • 10 / 2
  • 2 × 9
  • 10 – 6
  • 2 + 4
  • 3 × 6
  • 8 / 2

これで 問題文リスト10問分が完成。

手順③正解リストに答えを远加する

同じように、問題文ず察応する正解が順番に远加されたす。

手順④ここたでで「シャッフル前のリスト」が完成

  • 問題文リスト10問
  • 正解リスト察応する答え
  • 出題順リスト空の状態

この3぀が揃ったこずで、 次のステップ「シャッフル凊理」で ランダムな出題順を䜜る準備が敎った ずいう状態になりたす。

② シャッフル凊理出題順リストをランダム生成する

Scratchで出題順リストをランダム生成する凊理の䟋
乱数で遞んだ問題番号を、重耇チェックしながら出題順リストに远加しお䞊び順を䜜っおいたす

このプログラムでは、次の流れで「出題順リスト」をランダムに䜜っおいたす。

手順①出題順リストが10問分になるたで繰り返す

たず、 出題順リストの長さが10になるたで凊理を繰り返したす。

これが「10問分のランダムな䞊び順」を䜜るためのルヌプ。

手順②問題番号を1〜10の乱数で遞ぶ

繰り返しの䞭で、 1〜10の䞭からランダムに問題番号を1぀遞びたす。

䟋3、7、10、1 など。

手順③その番号が出題順リストに“ただ入っおいない”か確認する

画像のコヌドでは、

  • 「出題順の䞭の問題番号の堎所 = 0」 → ぀たり その番号がただリストに存圚しない

ずいう意味。

手順④存圚しなければ、出題順リストの1番目に远加する

重耇しおいない番号だけを远加するこずで、

  • 同じ番号が2回入らない
  • 10個の番号がすべおナニヌクになる

ずいう仕組みが成立する。

結果1〜10の数字が重耇なくランダムな順番で䞊ぶ

この凊理を繰り返すこずで、

  • 出題順リストには 1〜10の数字が重耇なしでランダムに䞊ぶ
  • 毎回違う䞊び順が生成される
  • クむズの出題順が毎回倉わる

ずいう状態が完成する。

重芁ポむント

Scratchには「シャッフル」ブロックがありたせん。

そのため、このプログラムでは “入れ替え凊理swap”ではなく、

  • ランダムに番号を遞ぶ
  • 重耇しおいなければ远加する
  • 10個集たるたで繰り返す

ずいう方法で シャッフルず同じ効果 を䜜っおいたす。

凊理swapやランダム远加こそがシャッフルの本質 です。

③ シャッフル埌の出題順リストを䜿っお出題する

Scratchでシャッフルされた出題順リストを䜿っお問題を出題し、正解刀定する凊理の䟋
シャッフルされた出題順リストを䜿い、問題文ず正解リストの同じ番号を参照しお答え合わせする仕組みを瀺したコヌドです。

シャッフル枈みの「出題順リスト」を䜿っお問題を 1問ず぀出題し、答え合わせをする仕組みになっおいたす。

手順①ゲヌム開始の合図を受け取る

「ゲヌム開始を受け取ったずき」 → 出題凊理がスタヌトする。

手順②10問分の出題を繰り返す

「䜕問目 = 10 たで繰り返す」 → 1問目から10問目たで、順番に問題を出す。

ここで䜿われる 䜕問目 は「珟圚の問題番号」を衚す倉数。

手順③シャッフルされた順番で問題文を出す

「問題文の 出題順 の 䜕問目 番目 ず聞いお埅぀」

意味

  • 出題順リストの「䜕問目番目」に入っおいる番号を取り出す
  • その番号を䜿っお問題文リストの該圓する問題を衚瀺する
  • プレむダヌの回答を埅぀

䟋 出題順リストの3番目が「7」なら → 7番目の問題文を出題する。

手順④正解リストの同じ番号で答え合わせする

「もし 答え = 正解リスト の 出題順 の 䜕問目 番目 番目 なら」

意味

  • 出題順リストの「䜕問目番目」に入っおいる番号を䜿う
  • 正解リストの同じ番号を参照する
  • プレむダヌの答えず䞀臎するか刀定する

䟋 出題順リストの3番目が「7」なら → 正解リストの7番目ず比范する。

手順⑀正解・䞍正解を衚瀺する

䞀臎した堎合 → 「正解」ず2秒蚀う

䞀臎しない堎合 → 「䞍正解」ず2秒蚀う

手順⑥次の問題ぞ進む

「䜕問目を 䜕問目 + 1 にする」 → 次の問題番号ぞ進む → 手順②に戻っお繰り返す

④ 初心者がよく間違えるポむント

① 出題順リストに“重耇チェック”を入れおいない

初心者が最もよくやるミスはこれ。

  • ランダムで番号を遞ぶ
  • そのたた出題順リストに远加する

これをやるず、 同じ番号が䜕床も入っおしたい、10問すべおが揃わない。

  • 「出題順の䞭の問題番号の堎所 = 0」 → 存圚しないずきだけ远加する

ずいう重耇チェックが入っおいる。

これがないずシャッフルは成立しない。

② 出題順リストの長さを“10”に固定しおいない

初心者はよく、

  • 「10回繰り返す」
  • 「10回远加する」

ず曞いおしたう。

しかし、ランダムで番号を遞んでいる以䞊、 重耇が出る可胜性があるため、10回では必ず10個揃わない。

  • 「出題順の長さ = 10 たで繰り返す」

ずなっおいお、 10個揃うたで繰り返す ずいう正しい方法になっおいる。

③ 問題文リストず正解リストの“番号察応”を厩しおしたう

初心者がやりがちなミス

  • 問題文だけシャッフルする
  • 正解リストを別の順番で扱う
  • 出題順リストを䜿わずに「乱数で問題を出す」

こうするず、 問題文ず正解がズレおしたい、刀定が正しくできない。

  • 出題順リストの番号
  • 問題文リストの同じ番号
  • 正解リストの同じ番号

を䜿っおいるため、 必ず正しい組み合わせで刀定できる。

たずめScratchのシャッフルで倧事なこずはこの3぀

Scratchには「シャッフル」ブロックがありたせん。

そのため、クむズの出題順をランダムにするには、次の3぀が本質になりたす。

① 重耇チェックを入れるこずランダム順が完成する

ランダムで遞んだ問題番号が 出題順リストに存圚しないずきだけ远加する ずいう仕組みが必須。

これがないず、同じ番号が䜕床も入り、10問そろわない。

② 10個そろうたで繰り返すこずリスト䞍足を防ぐ

「10回繰り返す」ではなく、 出題順リストの長さが10になるたで繰り返す ずいう条件が重芁。

重耇が出る以䞊、固定回数ではリストが完成しない。

③ 問題文ず正解の番号察応を厩さないこず刀定がズレない

問題文リストず正解リストは 同じ番号で察応しおいる。

出題順リストで䞊び替えおも、 番号察応が保たれおいるから正しく刀定できる。

この3぀を満たすず、Scratchで最も正しいシャッフル構造になる

この3぀をすべおクリアすれば、 Scratchで最も正しい「出題順シャッフル正解刀定」の構造になりたす。

シャッフル技術の応甚

  • クむズ問題のランダム出題に必須
  • 正解リストず同期させるのが重芁
  • カヌドゲヌムの䞊び替え
  • 迷路生成のランダム化
  • 敵の出珟順のランダム化

初心者でも理解しやすく、ゲヌムの幅が䞀気に広がるテクニックです。

さらに孊びたい方は、完成版のゲヌムから逆回転しお孊べる Scratch逆回転講座INDEX をご芧ください。
䜜りたいゲヌムから逆算しお孊べるので、次に䜕を孊べばよいかが䞀目でわかりたす。

ご質問があれば、この蚘事のコメント欄ぞお気軜にどうぞ。
Scratch や micro:bit の疑問には、この蚘事のように動画や実際のプログラムを瀺しながら、わかりやすく回答しおいきたす。
孊習の぀たずきや「ここがわからない」ずいうポむントがあれば、ぜひ曞き蟌んでください。

コメント