【ゲーム】ダンジョンからの脱出(迷路)
micro:bitが作り出す迷路からの脱出ゲーム。脱出するためには、迷路内にちりばめられたすべての宝物(コイン)を集めなければなりません。
1.遊び方
micro:bitからの挑戦!micro:bitが自動的に作り出す迷路から脱出するゲームです。脱出するためには、迷路内にちりばめられたすべての宝物(コイン)を集めなければなりません。
遊び方
タイトル「MAZE」が表示された直後、ゲームがスタートします。プレーヤーのミッションは、左上のスタート地点から右下のゴールへ向かって、迷路を脱出することです。迷路の途中には、宝物(コイン)が落ちているので、すべて集めなければなりません。宝物(コイン)がひとつでも残っていると脱出できません。LED画面には、迷路のほんの一部(5マス×5マス)しか表示されないので、経路を記憶しながらゴールを目指します。
LED画面の中央で点滅している1個のLEDがプレイヤーのアバターです。周りの明るく点灯しているLEDが迷路の壁です。壁を通り抜けることはできません。少し暗く点灯しているのが宝物(コイン)です。micro:bitを傾けながら迷路を進みます。
ゲーム中に、ボタンAを押すと残りの宝物の数が表示されます。また、迷路内で迷子になったときは、ボタンBを押すとスタート地点へワープすることができます。
ゴールすると、かかった時間(秒)が表示されます。再スタートは、背面のリセットボタンを押します。では、無事にダンジョンからの生還を果たして下さい。
2.このプログラムの動作に必要なもの
このプログラムは、micro:bit本体のみで動作します。
- micro:bit V2本体(内蔵スピーカーを使用)
※プログラムを変更することでmicro:bit V1でも動作可(後述) - パソコン(*1)
- USBケーブル(*1)
(*1):パソコン・USBケーブルは、プログラミングに必要なものです。
3.プログラム(ブロック)
プログラム(ブロック)です。
最初だけ実行されるプログラム
各変数の初期化と「迷路の初期化」「宝物の配置」「プレイヤーの位置を初期化」を実行します。変数「迷路の一辺の長さ」を変更すると、迷路のサイズが変わります。偶数を指定してください。変数「宝物の数」を変更すると、迷路内の宝物(コイン)の数が変わります。大きな数を指定すると、宝物が配置できなくなるので注意してください。
ずっと実行されるプログラム
中心となるプログラムです。プレイヤーの移動処理・迷路の表示・ゴールの判定などを行います。
関数:迷路の初期化
迷路の自動生成を行います。初期化は「更地にする(すべて床にする)」「外壁を作る(ひとつ内側を壁にする)」「内壁を作る(通路を作る)」の3ステップで行われます。
関数:マスの情報を設定する
マスに「床(0)」「壁(1)」「宝物(2)」の情報をセットします。
関数:座標の周囲に壁を作る
迷路を作る心臓部です。迷路生成アルゴリズムの中でも比較的簡単な「棒倒し法」を参考にしています。
関数:宝物の配置
自動生成された迷路の通路に宝物を配置します。
関数:プレイヤーの位置を初期化
プレイヤーを起点(迷路の左上)へ移動します。
関数:迷路の表示
micro:bitのLED画面へ迷路を表示します。プレイヤーの位置を中心に5マス×5マスの迷路が表示されます。
関数:加速度から方向を求める
micro:bitを倒す方向によって、プレイヤーの移動する向きを求めます。傾きが小さい場合は移動しません。
関数:座標のマスが[壁・宝物・床]
指定した座標上に「壁」「宝物」「床」があるかどうか判定します。
4.プログラム(JavaScript)
プログラム(Javascript)です。
5.micro:bit V1対応
このプログラムはmicro:bit V2専用ブロックを使用しているため、micro:bit V1では動作しません。micro:bit V1で動作させるには、プログラム中の「play sound」ブロックを変更してください。