Scratchでゲームなどを作るとき、必ず必要になるのが 変数の使い方。
これは初心者が最初にぶつかる壁でもあります。
なお、変数という考え方はScratchに限らず、どんなプログラミング言語でも共通です。
だからこそ、ここでしっかり理解しておくことが大切です。
そして、変数を学び始めた初心者が必ず疑問に思うのが次のポイントです。
- 変数って何?
- どうやって作るの?
- どんなブロックがあるの?
- どう使い分ければいいの?
この記事では、Scratchの変数を クイズゲームの例で6種類に体系化 し、例題・ブロック図・画像つきでわかりやすく解説します。
この記事は、Scratchでつまずきやすいポイントを解決するFAQシリーズのひとつです。
もし「Scratchで自分のゲームを作れるようになりたい」という方は、完成版のじゃんけんゲームを逆回転しながら学べる Scratch逆回転講座INDEX もあわせてご覧ください。
仕様づくりから設計・プログラミングまで一貫して学べる、別シリーズの学習講座です。
結論:Scratchの変数は「6種類」で理解すると一気にわかる
クイズゲームでは、変数は次の6種類の使い方に分類できます。
- 箱として使う(ユーザーの答え)
- フラグとして使う(正解/不正解)
- 定数として使う(問題数)
- 状態管理として使う(はじめ/出題中/終わり)
- カウンターとして使う(何問目か)
- タイマーとして使う(制限時間3秒)
この6種類を理解すると、Scratchの変数を自由自在に使いこなせるようになります。
① 箱として使う(ユーザーの答え)
クイズゲームで最初に必要なのが ユーザーの答えを入れる箱。
「変数を作る」
- 左の 変数カテゴリー をクリック
- 「変数を作る」 を押す
- 変数名:答え
- 「このスプライトのみ」でも「すべてのスプライト用」でもOK
この動画では、Scratchで「答え」変数を作る手順を紹介しています。
クイズゲームの最初のステップとして、ユーザーの入力を保存するための変数を作成します。
変数ブロックの基本
〇〇を0にする(代入)

このブロックは、変数に値を入れるための 代入ブロック です。
クイズゲームでは、ユーザーが入力した答えを保存するために使います。
例えば、ユーザーが「5」と答えた場合は、次のように変数へ保存します。
答えを5にする
このように、クイズゲームでは「答え」変数にユーザーの入力を代入することで、後の判定(正解/不正解)に使えるようになります。
〇を〇〇ずつ変える(増減)
クイズではあまり使わないが、ゲームでは頻出。

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

ここまでが「変数ブロックの基本」です。
次は、これらのブロックを使って実際にクイズゲームで「答え」変数をどのように扱うかを見ていきます。
クイズゲームでは、ユーザーが入力した答えを変数に保存し、その後に正解判定を行います。
つまり、変数は 「ユーザーの答えを入れる箱」 として使われます。
クイズゲームでの使い方(箱)

② フラグとして使う(正解/不正解)
クイズゲームでは、 正解か不正解かを判定するフラグ が必須。

③ 定数として使う(問題数)
クイズゲームでは、 問題数を変数で管理すると拡張しやすい。

④ 状態管理として使う(はじめ/出題中/終わり)
クイズゲームは「状態」で動きを変えると作りやすい。

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

⑥ タイマーとして使う(制限時間3秒)
クイズゲームでは 制限時間 を変数で管理できます。

よくある失敗と対処法
- 答えを初期化していない → 毎問「答えを0にする」を入れる
- 正解フラグを戻していない → 次の問題で誤判定
- 状態が複雑 → 0〜2に整理する
- 現在の問題を増やし忘れる → カウンターは必ず +1
- 時間を減らす処理が早すぎる → 「1秒待つ」を必ず入れる
まとめ(クイズゲームで理解する変数6種類)
| 使い方 | クイズゲームでの役割 |
|---|---|
| 箱 | ユーザーの答え |
| フラグ | 正解/不正解 |
| 定数 | 問題数 |
| 状態管理 | はじめ/出題中/終わり |
| カウンター | 現在の問題(何問目) |
| タイマー | 制限時間(3秒) |
クイズゲームで統一すると、 Scratchの変数の使い方が一気に理解できます。
さらに学びたい方は、完成版のゲームから逆回転して学べる Scratch逆回転講座INDEX をご覧ください。
作りたいゲームから逆算して学べるので、次に何を学べばよいかが一目でわかります。
ご質問があれば、この記事のコメント欄へお気軽にどうぞ。
Scratch や micro:bit の疑問には、この記事のように動画や実際のプログラムを示しながら、わかりやすく回答していきます。
学習のつまずきや「ここがわからない!」というポイントがあれば、ぜひ書き込んでください。

コメント