ミニゲーム: ブロックコードラボ
概要
ブロックコードラボは、Scratch ライクなブロックを組み立てて MiniExp API を安全に試せるビジュアルプログラミング環境です。 10×10 のサンドボックスステージやローカル変数を操作しながら、実行ログや XP 報酬を確認できます。
初期セットアップと基本操作
- 画面右上の 新規 を押して初期プロジェクトを作成します。ゲーム開始イベントブロックが自動で配置されます。
- ブロックライブラリからイベントや制御ブロックをドラッグ&ドロップし、ワークスペースに配置します。
- 実行 を押すとステージがリセットされ、ゲーム開始ブロック以下のスクリプトが順番に実行されます。 開始ブロックが存在しない場合は警告ログが表示されます。
- 停止 を押すと実行が中断され、ステージは初期状態に戻ります。
画面構成
ヘッダー
- 左側にプロジェクト名とブロック・変数数のサマリーが表示されます。新規プロジェクト作成時に自動更新され、保存するとメタデータがローカルストレージへ記録されます。
- 中央の操作ボタンから 新規 / 保存 / 読み込み / 共有コード / 実行 / 停止 を利用できます。 実行中は停止ボタンのみ有効になり、実行状態バッジが「実行中」に切り替わります。
- 右側には累積 XP と実行状態のバッジが並びます。XP はローカルに保存されるため、再訪問しても継続して加算されます。
ライブラリとワークスペース
- 左ペインのカテゴリボタンから「イベント」「アクション」「制御」「変数」「ユーティリティ」を切り替え、対応するブロックを一覧できます。 各ブロックには説明文が付き、ドラッグ操作のほかダブルクリックで即座にワークスペースへ追加可能です。
- ワークスペースはドラッグで配置したブロックが縦に並ぶエリアです。条件ブロックには「そうでなければ」スタックが自動で表示され、 ドラッグ中はハイライトされたドロップゾーンにのみ配置できます。
- ブロック右上の ⧉ / × ボタンで複製と削除が行えます。選択中のブロックはハイライトされ、実行時は現在ステップ中のブロックが順次強調表示されます。
右ペイン
-
上部のステージには 10×10 グリッドとプレイヤーキャラクターが表示されます。
プレイヤーを移動
やタイルを変更
ブロックで即座に反映されます。 - 下部のタブから ログ と 変数ウォッチ を切り替えられます。ログには情報・警告・エラーが色分け表示され、 変数ウォッチでは実行中の変数値がリアルタイムに更新されます。
ツールバー
- 画面下部に Undo / Redo(現在は警告メッセージのみ)、ズームリセット、スナップ切替、グリッド表示切替、実行速度スライダーがあります。
- ズームはワークスペース全体に適用され、速度スライダーは 0.25×〜3× の範囲で Worker 実行速度を制御します。
ブロックカテゴリの概要
- イベント
- プロジェクト開始やキー入力を受け取るハットブロックです。少なくとも 1 つの開始イベントがないと実行できません。
- アクション
- プレイヤーの移動やタイル色変更など、ステージに直接作用する命令です。
- 制御
- 待機、繰り返し、条件分岐、無限ループ(512 回で自動停止)などのフロー制御を提供します。
- 変数
- 変数の作成・代入・加算が行えます。変数名は左ペインのリストから追加できます。
- ユーティリティ
- ログ出力や XP 付与など、開発時の補助機能です。
変数管理
- 「変数を追加」ボタンから名前・型・初期値を設定すると、プロジェクトに保存されワークスペースの変数ブロックから選択できます。
- 変数リストの削除ボタンで即時削除が可能です。削除後はワークスペースやサマリーが自動更新されます。
- 実行時は Worker 内で変数テーブルが初期化され、初期値が投入されたあと変数ウォッチへ同期されます。
実行とサンドボックス挙動
- 実行すると専用 Web Worker が生成され、ステージと変数状態が隔離されます。実行終了時には自動停止し、必要に応じてワーカースレッドが破棄されます。
- ステージは毎回リセットされ、プレイヤーは中央 (4,4) の黄色ピクセルから開始します。タイル色は
#RRGGBB
形式のみ受け付けられます。 - 速度スライダーで指定した倍率に応じ、待機時間や移動アニメーションがスケーリングされます。
- 条件式は安全なフィルタを通して評価され、無効な表現は 0 とみなされます。文字列リテラルや数値演算も制限付きで扱えます。
- 無限ループブロックは 512 回で自動的に停止し、警告ログが出力されます。停止ボタンでもいつでも中断可能です。
XP と実績
- ラボを開いた時点で 5 XP、ブロックを 5 個追加するたびに 2 XP、スクリプト実行完了で 8 XP が加算されます。
XP を獲得
ブロックを使えば実行中に任意量の XP を付与できますが、値は −100〜1,000 の範囲に制限されます。- 獲得した XP はローカルストレージに保存され、XP バッジやメッセージで進捗を確認できます。
プロジェクトの保存・共有
- 保存 はブラウザのローカルストレージに最大 10 件まで記録され、一覧から最新順でロードできます。
- 共有コード は Base64 文字列としてエクスポートされます。コピーしたコードを共有相手がダイアログに貼り付ければ、同じプロジェクトを復元できます。
- 共有コードの解析に失敗した場合は警告が表示され、プロジェクトは変更されません。
トラブルシューティング
- 開始イベントが無いまま実行すると警告ログが表示され、ステージは更新されません。必ずハットブロックを配置してください。
- 共有コードの貼り付けに失敗した場合は形式が正しいか確認し、余分な空白を削除して再試行してください。
- ループが規定回数を超えると自動停止します。必要なら繰り返し回数を制限するか、停止ボタンで中断してください。