「ものづくり:make」を楽しみながら学ぶ人へ向けた独習サポートサイト。

micro:bit Lab.【マイクロビット】

micro:bit Lab.では、micro:bit【マイクロビット】に関する情報を紹介しています。

コインをすべて集めて脱出せよ!
付録2-37

【ゲーム】ダンジョンからの脱出(迷路)

2021-01-132021-01-13

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-1.最初だけ実行されるプログラム
図3-1.最初だけ実行されるプログラム

ずっと実行されるプログラム

中心となるプログラムです。プレイヤーの移動処理・迷路の表示・ゴールの判定などを行います。

図3-2.ずっと実行されるプログラム
図3-2.ずっと実行されるプログラム

関数:迷路の初期化

迷路の自動生成を行います。初期化は「更地にする(すべて床にする)」「外壁を作る(ひとつ内側を壁にする)」「内壁を作る(通路を作る)」の3ステップで行われます。

図3-3.関数:迷路の初期化
図3-3.関数:迷路の初期化

関数:マスの情報を設定する

マスに「床(0)」「壁(1)」「宝物(2)」の情報をセットします。

図3-4.関数:マスの情報を設定する
図3-4.関数:マスの情報を設定する

関数:座標の周囲に壁を作る

迷路を作る心臓部です。迷路生成アルゴリズムの中でも比較的簡単な「棒倒し法」を参考にしています。

図3-5.関数:座標の周囲に壁を作る
図3-5.関数:座標の周囲に壁を作る

関数:宝物の配置

自動生成された迷路の通路に宝物を配置します。

図3-6.関数:宝物の配置
図3-6.関数:宝物の配置

関数:プレイヤーの位置を初期化

プレイヤーを起点(迷路の左上)へ移動します。

図3-7.関数:プレイヤーの位置を初期化
図3-7.関数:プレイヤーの位置を初期化

関数:迷路の表示

micro:bitのLED画面へ迷路を表示します。プレイヤーの位置を中心に5マス×5マスの迷路が表示されます。

図3-8.関数:迷路の表示
図3-8.関数:迷路の表示

関数:加速度から方向を求める

micro:bitを倒す方向によって、プレイヤーの移動する向きを求めます。傾きが小さい場合は移動しません。

図3-9.関数:加速度から方向を求める
図3-9.関数:加速度から方向を求める

関数:座標のマスが[壁・宝物・床]

指定した座標上に「壁」「宝物」「床」があるかどうか判定します。

図3-10.関数:座標のマスが[壁・宝物・床]
図3-10.関数:座標のマスが[壁・宝物・床]

4.プログラム(JavaScript)

プログラム(Javascript)です。

5.micro:bit V1対応

このプログラムはmicro:bit V2専用ブロックを使用しているため、micro:bit V1では動作しません。micro:bit V1で動作させるには、プログラム中の「play sound」ブロックを変更してください。

この記事を読んだ人は、こんな記事にも興味があります。
スポンサーリンク
TOPへ移動
目次へ移動