こんにちは、沖縄市にある子供向けプログラミング教室「エイド」のミチノリです。今日も子供たちと一緒にプログラミング学習をやっています。

早速ですが、今日は脱出ゲームについて書いていきます。脱出ゲームとは、何らかの理由で入れられてしまった部屋の中で、部屋の中に隠されている様々なヒントを元に謎を解いていきながら、その部屋から脱出するゲームです。(いろんなパターンがあります)

プログラミング学習において大切なことの一つに、ルールを覚えて理解する。というモノがあります。プログラミングとは、コンピュータに対してプログラミング言語を使って命令を与えて動かしていく事です。適当にやっても絶対に正しく(思っている通りに)動かせる事は出来ないので、脱出ゲームとも通ずる点があると思います。

脱出ゲームは、適当にやってもクリアする事は出来ません。偶然に頼らずに、きちんと部屋の中に隠されたヒントを元に頭の中で考えていく事が大切です。定義されているルールを覚えて、出題者(ゲームマスター)がプログラムした部屋の中で、意図を理解して謎を解く事でクリアできるようになっています。

そんな脱出ゲームですが、子供向けプログラミング学習でよく使われている言語のscratch(スクラッチ)でも作る事が出来ます!今日はそのプログラムの内容について、簡単に紹介をしていきたいと思います。

 

脱出ゲームでは、様々な視点でアングルを変えたり、部屋の背景が切り替わります。scratch(スクラッチ)で部屋の背景を切り替える場合は、ステージの場所にコードを書いていきます。

背景を切り替えるプログラムはいくつかあると思いますが、シンプルでわかりやすいのは、変数を使った切り替えです。ステージという変数を作り、その変数の値が何であるかで、背景を切りかえていきます。今回のサンプルでは、四つの背景を切り替えています。脱出ゲームの舞台となる部屋の背景が2つ、暗号を答える背景が1つ、そしてクリア後の背景が1つです。

「 もし、ステージの変数が1なら、背景をルームにする。」というプログラムで背景を切り替えます。

 

次に、部屋を切り替えるプログラムを作ります。部屋の切り替えは、矢印で行います。こちらもシンプルなプログラムになっています。

 
「スプライト(矢印)が押されたら、ステージの変数を2にする。」

「旗が押されたら、座標の位置を指定する。もしも、ステージが1なら表示して、それ以外なら非表示にする。」

 矢印はステージの変数の値が何になっているかで、表示と非表示の切り替えをします。また、矢印をクリックすることで、変数の値を変えています。

サンプルでは4つの矢印を使っています。それぞれのプログラムはほぼ同じですが、座標の位置や、クリックしたときに変える変数の値等が異なります。

 

矢印を配置したら、部屋の中にヒントの書かれたボールを置いていきます。今回作っているサンプルの脱出ゲームでは、部屋の中に隠されている三つのボールをクリックする事で、暗号となる数字がわかるようになっています。

「旗が押されたとき、ボールの大きさを10%にする。もしステージが2なら表示して、そうでなければ非表示にする」

「クリックされたら大きさを100%にする」

予めボールに数字を書いておきます。そのあと、小さくして目立たなくして、部屋の中に置いていきます。よーく注意してみれば、すぐに気づくことが出来るようになっています。

 

次に、ボールに書かれた数字の順番を表すプログラムです。机の上にパソコンのスプライトを配置して、このパソコンをクリックすると、数字の並びを表すヒントを与えています。

 
このプログラムでも、変数の値によって表示・非表示をさせています。パソコンをクリックする事で、コスチュームを切り替えているので、画面が白いままのコスチュームと、ボールの色で並びを表しているコスチュームの2つを予め用意していきましょう。
 

最後に、暗号を判断するキャラクター(スプライト)を配置します。このキャラクターもステージの値によって表示・非表示を行います。スプライトをクリックすると、暗号を入力できます。そして、答えた内容が、予め設定していた数値になっていれば、ステージ変数の値が切り替わって、ゴールの画面へと切り替わります。もしも間違えた場合は、ステージ変数が1になって、スタートの画面に戻ります。

 
今回のサンプルはとてもシンプルな謎解きになっていますが、暗号を増やしたり、特定のアイテムを出現させるためのステップを増やしていく等の工夫を重ねれば、どんどんと脱出ゲームの内容が深まりますので、ぜひ試してみて下さい!

 下記のURLより、公開されているページが見られますので、ぜひご覧下さい。PC版となりますが、今回紹介した全てのプログラムが見れるようになっています。

脱出ゲーム簡易版サンプル

 

エイドでは、子供たちに興味をもって作ってもらう事を大切にしているので、まずは別の脱出ゲームを実際にプレイして感覚を掴んでから、今回のサンプルを各自で作っています。

 
ただゲームを楽しむ事も大切ですが、自分で遊んだゲームを、自分でプログラミングして作ってみるという体験と経験が重要だと思います。

 

ルールを定める事が出来るか?

謎を考えて、ちゃんとその謎解きのロジックが間違っていないか?

楽しくプレイする事が出来るか?

 

いろいろと書いてみましたが、シンプルに脱出ゲームが楽しい!というのも良い点です。今回はscratchを使って作成しましたが、実際に教室を使ってリアル脱出ゲームも作れないかなぁ・・・と考えています。