スクラッチ 変数 使い方|6種類の方法を体系的にまとめたScratch質問編(FAQ)

Scratch質問編(FAQシリーズ)

Scratchでゲームなどを作るとき、必ず必要になるのが 変数の使い方

これは初心者が最初にぶつかる壁でもあります。

なお、変数という考え方はScratchに限らず、どんなプログラミング言語でも共通です。

だからこそ、ここでしっかり理解しておくことが大切です。

そして、変数を学び始めた初心者が必ず疑問に思うのが次のポイントです。

  • 変数って何?
  • どうやって作るの?
  • どんなブロックがあるの?
  • どう使い分ければいいの?

この記事では、Scratchの変数を クイズゲームの例で6種類に体系化 し、例題・ブロック図・画像つきでわかりやすく解説します。

この記事は、Scratchでつまずきやすいポイントを解決するFAQシリーズのひとつです。
もし「Scratchで自分のゲームを作れるようになりたい」という方は、完成版のじゃんけんゲームを逆回転しながら学べる Scratch逆回転講座INDEX もあわせてご覧ください。
仕様づくりから設計・プログラミングまで一貫して学べる、別シリーズの学習講座です。

結論:Scratchの変数は「6種類」で理解すると一気にわかる

クイズゲームでは、変数は次の6種類の使い方に分類できます。

  • 箱として使う(ユーザーの答え)
  • フラグとして使う(正解/不正解)
  • 定数として使う(問題数)
  • 状態管理として使う(はじめ/出題中/終わり)
  • カウンターとして使う(何問目か)
  • タイマーとして使う(制限時間3秒)

この6種類を理解すると、Scratchの変数を自由自在に使いこなせるようになります。

① 箱として使う(ユーザーの答え)

クイズゲームで最初に必要なのが ユーザーの答えを入れる箱

「変数を作る」

  1. 左の 変数カテゴリー をクリック
  2. 「変数を作る」 を押す
  3. 変数名:答え
  4. 「このスプライトのみ」でも「すべてのスプライト用」でもOK

この動画では、Scratchで「答え」変数を作る手順を紹介しています。
クイズゲームの最初のステップとして、ユーザーの入力を保存するための変数を作成します。

変数ブロックの基本

〇〇を0にする(代入)

答えを5にするブロック
クイズゲームで使う「答え」変数に、ユーザーの入力(5)を代入するブロックです。

このブロックは、変数に値を入れるための 代入ブロック です。

クイズゲームでは、ユーザーが入力した答えを保存するために使います。

例えば、ユーザーが「5」と答えた場合は、次のように変数へ保存します。

答えを5にする

このように、クイズゲームでは「答え」変数にユーザーの入力を代入することで、後の判定(正解/不正解)に使えるようになります。

〇を〇〇ずつ変える(増減)

クイズではあまり使わないが、ゲームでは頻出。

答え変数を10ずつ増やすScratchの変数ブロック
「答え」変数の値を10増やすブロックです。クイズゲームではあまり使いませんが、ゲーム全般ではスコアやHPを増減させるときによく使います。

〇〇を〇〇にする(計算代入)

答え変数を「答え+5」に更新するScratchの計算代入ブロック
「答え」変数に計算結果を代入するブロックです。ここでは現在の答えに5を足した値を新しい答えとして保存します。クイズゲームではユーザー入力の加工や得点計算などで使われることがあります。

ここまでが「変数ブロックの基本」です。

次は、これらのブロックを使って実際にクイズゲームで「答え」変数をどのように扱うかを見ていきます。

クイズゲームでは、ユーザーが入力した答えを変数に保存し、その後に正解判定を行います。

つまり、変数は 「ユーザーの答えを入れる箱」 として使われます。

クイズゲームでの使い方(箱)

クイズゲームでユーザーの答えを変数に保存し、正解判定を行うScratchのブロック例
ユーザーの答えを「答え」変数に保存し、問題の正解と一致するかを判定する処理です。クイズゲームの基本となる流れを示しています。

② フラグとして使う(正解/不正解)

クイズゲームでは、 正解か不正解かを判定するフラグ が必須。

クイズゲームでユーザーの答えが正解か不正解かを判定し、正解フラグを1または0に設定するScratchのブロック例
ユーザーの答えが正解かどうかを判定し、正解フラグを1(正解)または0(不正解)に設定する処理です。クイズゲームの判定ロジックの中心となる部分です。

③ 定数として使う(問題数)

クイズゲームでは、 問題数を変数で管理すると拡張しやすい

クイズゲームで問題数を変数に設定し、指定した回数だけ問題を繰り返し出題するScratchのブロック例
問題数を変数にしておくことで、クイズの出題回数を簡単に変更できます。繰り返し処理と組み合わせることで、柔軟なクイズゲームを作れるようになります。

④ 状態管理として使う(はじめ/出題中/終わり)

クイズゲームは「状態」で動きを変えると作りやすい。

クイズゲームで状態(はじめ・出題中・終わり)に応じて処理を切り替えるScratchのブロック例
状態変数の値(0=はじめ、1=出題中、2=終わり)によって実行する処理を切り替える例です。状態を管理することで、クイズゲーム全体の流れを整理できます。

⑤ カウンターとして使う(何問目か)

クイズゲームで現在の問題番号を1ずつ増やし、何問目かを管理するScratchのブロック例
「現在の問題」変数を1ずつ増やして、何問目を出題しているかを管理する処理です。問題数と組み合わせることで、順番に問題を出すクイズゲームを作れます。

⑥ タイマーとして使う(制限時間3秒)

クイズゲームでは 制限時間 を変数で管理できます。

制限時間を変数で設定し、タイマーと比較して時間切れを判定するScratchのブロック例
制限時間を変数で管理し、タイマーが時間を超えたかどうかで正解・不正解・時間切れを判定する処理です。クイズゲームに時間要素を加えると難易度が上がります。

よくある失敗と対処法

  • 答えを初期化していない → 毎問「答えを0にする」を入れる
  • 正解フラグを戻していない → 次の問題で誤判定
  • 状態が複雑 → 0〜2に整理する
  • 現在の問題を増やし忘れる → カウンターは必ず +1
  • 時間を減らす処理が早すぎる → 「1秒待つ」を必ず入れる

まとめ(クイズゲームで理解する変数6種類)

使い方クイズゲームでの役割
ユーザーの答え
フラグ正解/不正解
定数問題数
状態管理はじめ/出題中/終わり
カウンター現在の問題(何問目)
タイマー制限時間(3秒)

クイズゲームで統一すると、 Scratchの変数の使い方が一気に理解できます。

さらに学びたい方は、完成版のゲームから逆回転して学べる Scratch逆回転講座INDEX をご覧ください。
作りたいゲームから逆算して学べるので、次に何を学べばよいかが一目でわかります。

ご質問があれば、この記事のコメント欄へお気軽にどうぞ。
Scratch や micro:bit の疑問には、この記事のように動画や実際のプログラムを示しながら、わかりやすく回答していきます。
学習のつまずきや「ここがわからない!」というポイントがあれば、ぜひ書き込んでください。

コメント