スクラッチおみくじの作り方完全解説!乱数と条件分岐の基本技
小学校での必修化以降、教育現場や家庭学習のスタンダードとして定着した「Scratch(スクラッチ)」。子どもから大人まで直感的にコードを組み立てられるビジュアルプログラミング環境として親しまれていますが、プログラミング初心者が最初に挑戦するテーマとして圧倒的な支持を集めているのが「おみくじゲーム」です。
おみくじの制作には、コンピュータの最大の特徴である「計算とランダム処理(乱数)」、そしてすべてのプログラムの土台となる「条件分岐(もし〜なら)」のエッセンスが凝縮されています。本稿では、プログラミング教育の現場取材と指導ノウハウをもとに、スクラッチプログラミング初心者でも15分で完成できる基本構造から、本格的な演出・確率設定テクニックまでを完全網羅して解説します。
📌 【この記事の重要ポイントまとめ】
- 要点1:「乱数ブロック」と「もし〜ならの条件分岐」を組み合わせるだけで、誰でも短時間で本格的なおみくじが作れる。
- 要点2:コスチュームの切り替えや効果音、変数による確率の傾斜配分を実装することで、自由研究にも最適な高品質作品へ進化する。
- 要点3:教育工学の観点からも、アルゴリズムの仕組みと試行錯誤の思考力を養う入門テーマとして極めて有効である。
【基礎から実践】スクラッチおみくじの作り方手順と基本の仕組み
スクラッチでおみくじを作る基本構造は極めてシンプルです。「ボタン(またはおみくじの箱)をクリックする」→「コンピュータがサイコロを振るようにランダムな数字を選ぶ」→「出た数字に応じて結果(大吉・中吉・凶など)を表示する」という3ステップで成り立っています。
ここでは、Webブラウザで手軽に扱える「Scratch 3.0」の環境を前提に、初心者でも迷わないステップバイステップの作成手順を紹介します。
ステップ1:スプライトの作成方法とコスチュームの準備
まずは画面に表示するキャラクターや文字を用意します。スクラッチでは、登場するオブジェクトを「スプライト」と呼びます。
- スプライトを新規作成する:画面右下の「スプライトを選ぶ」から、ペイント機能を使って自分でおみくじの箱を描くか、用意されたライブラリから好みのイラストを選択します。
- コスチュームの切り替えを設定する:1つのスプライトの中に、結果画面となる複数の絵柄(大吉・中吉・吉・凶など)を描き足していきます。コスチューム名を「1_大吉」「2_中吉」「3_凶」のように番号と一致させておくと、後々のプログラミングが格段にスムーズになります。
ステップ2:乱数ブロックの使い方をマスターする
おみくじの心臓部となるのが、緑色の演算カテゴリにある乱数ブロックの使い方です。「1から10までの乱数」というブロックの数値を変更し、例えばコスチュームの数に合わせて「1から4までの乱数」と設定します。これを実行するたびに、コンピュータが指定した範囲の中から1つの整数をランダムに選び出します。
ステップ3:もし〜ならの条件分岐とスクラッチおみくじコード例
ランダムに選ばれた数字を画面の結果と連動させるために、制御カテゴリのもし〜ならの条件分岐ブロックを使用します。
最もわかりやすいスクラッチおみくじコード例のロジックは以下の通りです。
- 【イベント】「このスプライトが押されたとき」を配置
- 【変数】「おみくじ結果」という変数を作成し、「おみくじ結果 を 1から3までの乱数 にする」を連結
- 【制御】「もし <おみくじ結果 = 1> なら」→【見た目】「コスチュームを 大吉 にする」
- 【制御】「もし <おみくじ結果 = 2> なら」→【見た目】「コスチュームを 中吉 にする」
- 【制御】「もし <おみくじ結果 = 3> なら」→【見た目】「コスチュームを 凶 にする」
このわずか数行のブロックを組み立てるだけで、画面上のおみくじをクリックするたびに異なる運勢が表示される簡単なゲームの作り方の基礎が完成します。

【実態検証】プログラミング授業と現場で見えた「初心者のつまずきポイント」
全国の小学校やプログラミング教室で行われている小学生向けプログラミング学習の現場を取材すると、おみくじ作成において子どもたちや初心者が共通して直面する典型的なエラーパターンが浮き彫りになってきます。
プログラミング教育に携わる指導員は次のように証言します。「子どもたちが最も頻繁に起こすバグは、条件分岐の中で毎回新しい乱数を引いてしまうミスです。『もし 1から3の乱数=1 なら』『もし 1から3の乱数=2 なら』と各条件ごとに乱数ブロックを埋め込んでしまうと、1回目の判定で外れた後に2回目の判定で別の数字が生成され、結果が何も表示されなかったり、複数の結果が重複して判定されたりします」。
このトラブルを防ぐ決定的な解決策が「変数」の導入です。最初に引いたサイコロの目を変数という名前の箱に一度保存し、その保存された数値を比較・判定するという処理手順を学ぶことが、プログラミング的思考を身につける重要なブレークスルーとなります。公式のScratch3.0チュートリアルをなぞるだけでなく、こうした「なぜ動かないのか」を突き詰める試行錯誤こそが、学習効果を最大化させる鍵です。
【徹底比較】おみくじの難易度別実装パターンと学習効果データ
一口にスクラッチのおみくじと言っても、取り組む難易度や目的によって実装すべきロジックは多岐にわたります。初心者向けの初級構成から、夏休みの自由研究プログラミング作品としても通用する上級構成までの機能と学習効果を比較・整理しました。
| レベル・実装タイプ | 使用する主要ブロック | 制作目安時間・対象 | 得られる学習効果・見解 |
|---|---|---|---|
| 入門:セリフ表示型 | 乱数、もし〜なら、〜と言う | 10〜15分(小学低学年〜) | 乱数と条件分岐の超基本を直感的に理解するのに最適。 |
| 初級:コスチューム連動型 | コスチューム切り替え、変数 | 20〜30分(小学3・4年生〜) | 変数の役割とUI(視覚的デザイン)の連動性を体感できる。 |
| 中級:確率操作・演出型 | 不等号(>, <)、音を鳴らす、ループ | 45〜60分(小学5・6年生〜) | 算数の割合・確率の概念を組み込み、作品の魅せ方を工夫できる。 |
| 上級:データ集計・連打防止型 | リスト(配列)、タイマー、メッセージ | 90分以上(中学生・発展学習) | 過去の履歴保存やユーザー体験(UX)を考慮した本格開発。 |

クオリティが劇的に跳ね上がる!効果音と演出の付け方&確率設定テクニック
基本のおみくじが完成したら、プレイヤーを楽しませるための演出や、現実のおみくじに近い確率配分を導入してみましょう。細部をブラッシュアップすることで、作品の完成度はプロ顔負けのクオリティへと進化します。
1. ドラマチックに見せる「効果音と演出の付け方」
ボタンを押した瞬間に結果が表示されるだけでは、ゲームとしての面白みに欠けてしまいます。そこで、結果が出るまでに「待ち時間」と「シャッフルアニメーション」を挟みます。
- アニメーション演出:「10回繰り返す」ブロックを使い、その中で「次のコスチュームにする」「0.05秒待つ」を繰り返すことで、パラパラ漫画のようにおみくじの札が激しくシャッフルされる演出が作れます。
- 効果音の連動:シャッフル中に太鼓の音やドラムロールのサウンドをループ再生し、結果が出た瞬間に「ファンファーレ(大吉用)」や「残念な音(凶用)」を鳴らすことで、一喜一憂の臨場感が倍増します。
2. 変数を使った確率設定(レア度を調整する計算ロジック)
一般的なおみくじでは、大吉や大凶は出現率が低く、吉や中吉が出やすくなっています。変数を使った確率設定を行うには、乱数の母数を「1から100」に広げ、不等号ブロック(< や >)を用いて範囲指定を行います。
- 大吉(出現率10%):乱数が「1〜10」のとき
- 中吉(出現率30%):乱数が「11〜40」のとき
- 吉(出現率40%):乱数が「41〜80」のとき
- 凶(出現率20%):乱数が「81〜100」のとき
このように条件分岐を不等号で階層化することで、数学の「確率」の概念をゲーム上で直感的に再現することが可能になります。
一般に知られていない盲点とネットの誤解
ネット上の簡易的な解説記事や動画では、「乱数の数字とコスチューム番号をそのまま直結させれば、条件分岐ブロックを書かずに1行で完成する」というショートカット技が紹介されるケースがあります。具体的には「コスチュームを(1から4までの乱数)にする」という記述方法です。
確かにコードの行数は削減できますが、教育工学的・実践的なプログラミング学習の観点からは、この手法には大きな盲点が存在します。
最大のデメリットは、「拡張性が完全に失われる」という点です。コスチューム番号と乱数を直結してしまうと、「大吉のときだけ特別なファンファーレを鳴らす」「凶のときだけ画面を暗くする」「大吉の確率を10%に絞る」といった個別のイベント処理を追加できなくなります。一見遠回りに見えても、変数を定義して「もし〜なら」で丁寧に分岐させる設計こそが、本格的なプログラミング言語(PythonやJavaScriptなど)への移行時にも役立つ本質的なスキルとなります。
【プロの結論】おすすめできる人・慎重になるべき人の判断基準
認知心理学や教育工学の研究において、ビジュアルプログラミングを通じた試行錯誤は、論理的構成力や自己効力感を育む優れたアプローチであることが証明されています。しかし、学習者の関心や発達段階に応じたアプローチの選定が不可欠です。
おみくじプログラミングが極めて適している人
- プログラミングに初めて触れる完全初心者:直感的な操作で「自分で作ったものが動く」成功体験を短時間で得たい人。
- 自由研究のテーマに悩む小・中学生:デザインの工夫、確率の検証実験、統計データの収集など、多角的なレポート作成へと発展させたい人。
- 論理的思考の基礎を身につけたい親子:「もし雨が降ったら傘を持つ」といった日常のルールとプログラミングの条件分岐を結びつけて学びたい家庭。
焦らず別のアプローチを検討すべき人
- すでにテキスト言語(Python等)の基礎文法を習得している中・上級者:ブロックプログラミングでは表現の制約が多く、物足りなさを感じる場合があります。
- 複雑な3Dアクションゲームを作りたい人:おみくじのような静的判定ゲームではなく、物理演算やスクロール処理を学ぶチュートリアルから入るのが賢明です。
【スクラッチ おみくじ 作り方】に関するよくある質問(FAQ)
Q1:Scratchのアカウントを作らなくても、おみくじの作成はできますか?
A1:はい、完全無料でアカウント登録なしでも利用可能です。ブラウザでScratch公式サイトにアクセスし、画面上部の「作る」をクリックするだけですぐに制作を開始できます。ただし、作った作品をオンライン上に保存したり公開したりしたい場合は、無料のアカウント作成をおすすめします。
Q2:スマホやiPad(タブレット)でもスクラッチでおみくじは作れますか?
A2:作成可能です。Scratch 3.0はタブレットのタッチ操作にも完全対応しています。ただし、イラストを細かく描く作業やブロックの配置は、マウスとキーボードが使えるパソコンの方がスムーズに進められます。
Q3:夏休みの自由研究にする場合、どのようなまとめ方をすれば評価されますか?
A3:単にプログラムの画面を貼るだけでなく、「①なぜおみくじを作ろうと思ったか(動機)」「②工夫した点(確率の設定やアニメーション演出)」「③苦労したエラーと解決方法」「④実際におみくじを100回引いて確率通りに出現したかの実験データ」の4点をレポート用紙にまとめると、論理的で完成度の高い自由研究として高く評価されます。
まとめ:今後の動向と失敗しないための判断基準
スクラッチにおけるおみくじ作りは、単なるミニゲーム制作にとどまりません。乱数による偶発性の創出、変数による状態の保持、そして条件分岐による的確な処理という、あらゆるソフトウェア開発の根底に流れる基本三要素を網羅的に体験できる最高の学習ツールです。
まずは基本の3択おみくじを動かすところからスタートし、慣れてきたら効果音の追加や確率の傾斜配分、ユニークなイラストデザインへとオリジナリティを広げてみてください。自分で組み立てたロジックが思い通りに画面上で動き出した瞬間の感動こそが、次なるデジタル創造への確かな第一歩となるはずです。 (出典: スクラッチ おみくじ 作り方(Yahoo!ニュース))