【ブロックリー】迷路の考え方と学習内容を解説します

何を学ぶことができるの?
難問で全然解けません!

こうした悩みを解決します。

記事の内容

・迷路の学習内容
・レベル10の考え方

立科プログラミングでは、小学生・中学生を対象に、ブロックリーを用いたプログラミング教室を実施しております。
一緒にプログラミング学習を楽しみましょう!

学習内容

迷路ではループ処理と分岐処理を学習します。

スタートから指定されたゴール地点まで行くプログラムを作ります。
進む、右を向く、左を向くと書かれたブロックをつなぎ合わせてゴールを目指します。

ゴールまで短ければ、いくつかつなぎ合わせていけばよいですが、
長い距離を進み続けるときには、ずっと進んでもらいたいです。
そこで使うのがループ処理です。

ループ処理

緑色の「赤いポイント地点まで繰り返す」ブロックがループ処理になります。
プログラミングで言うところの、while文になります。
ループ処理は条件が満たされるまで延々とブロック内の処理を繰り返し実行し続けます。
ここで言えば、赤いポイント地点に到達するまでひたすら中身の処理を繰り返します。
(実際のプログラミングでは、下手にwhileループ使うと抜け出せずバグるので注意すべき処理)

分岐処理

ループに”まっすぐ進む”を入れておけば楽ちんでいいや!と思いますが、
曲がりたい時にはしっかり曲がれるようにしたいです。
そこで使うのが分岐処理です。上図で言うと、青色の「もし左に進めるなら」の部分です。
プログラミングで言うところの、if文になります。
分岐処理は、分岐条件が正しければその中身の処理を実行します。
ここで言えば、左に曲がれるなら、左を向く、を実行します。曲がれなかれば何も起こりません。

学習を進めると、分岐処理の条件が正しければAを実行、正しくなければBを実行のように
処理を分けて動作させることも学習します。
プログラミングで言うところの、if~else文になります。

分岐処理はプログラミングにおいて非常に重要な考え方なので、これが分かるだけでもやる価値あります。

レベル10の答え

早速ですが、迷路 レベル10の答えを下図で示します。

赤いポイントに到着するまで繰り返し実行する、のブロックがループ処理(=while)、
もし〜なら、のブロックが分岐処理(=if文、if~else文)ですね。

左下をスタートして赤いポイントまで最短ルートを考えます。
多くが2マス移動して左右に分岐することに着目し、2マス進むようにしました。
しかし、最後のポイント周辺は1マス構成となっているので、途中で落ちてしまいます。
落ちないように気をつけつつ行けるなら行っちゃいましょう、ということで
「もしまっすぐ進めるならまっすぐ進む」の分岐処理で制御しています。
赤いポイントまで繰り返す、の中の
「もしまっすぐ進めるならまっすぐ進む」
が2つ続く部分ですね。これによって、
2マス行けるなら2マス進む、1マス行けるなら1マス進む、これ以上行けないなら何もしない、
という動きになります。

プログラムを実行すると、左下からスタートし2マス進みました。
ゴールに行くにはここで左に曲がらなければなりません。

ここでまた分岐処理を用います。
「もし左に進めるなら左に進む」を追加しました。
するとどうでしょう、2マス真っすぐ進んで左に曲がる、2マス真っすぐ進んで左に曲がる、と
繰り返すと、左上の方にそれてしまいます。

これはおかしいですね。最初左に曲がった先の十字の分岐は右に行きたいです。
そこで、分岐条件を変えます。
「もし右に進めるなら右に、それ以外は左に曲がる」としてみます。
この条件だと右に曲がる処理の優先順位が高くなりました。

よしよし、十字の分岐は右にそれたし、最短経路で行けるかな?
次の左の分岐は…まず2マスまっすぐ進んで、右行けないなら左に曲がってくれよー…来い!来い!
おお!!曲がったー!ちゃんと曲がったぞー!

よし、続いて2マスまっすぐ進んだ後、Y字を左に行けばいいけど…行かなーい!
右優先だから右にそれてしまってるー!

…ということで、私の回答は結果としてゴールにたどり着くのですが、最短経路の答えではないです。

期待して読んで下さった皆様すみません…最短経路の答えと考え方はこちら↓
【最難関!】ブロックリー迷路レベル10の答えと考え方を解説します

ゲームをやってみて感じたこと

プログラミングはゴールにたどり着くためにたくさんの方法があります。
ブロックリーは自分で考えながら取り組めるのが良いですね。

初めてプログラミングやってみるよー、って人にはとっても面白くて楽しいのでおすすめしたいです。無料なのも嬉しいですね。

まとめ

・迷路ではループ処理と分岐処理を学習します
・プログラミング未経験でも楽しく学ぶことができるのでオススメです!

立科プログラミングでは、小学生・中学生を対象に、ブロックリーを用いたプログラミング教室を実施しております。
一緒にプログラミング学習を楽しみましょう!

ブロックリー 迷路をやってみる 〉