Google Blockly Maze(ブロックリー・ゲームの迷路)(後編)

GoogleBlocklyMaze(ブロックリー・ゲームの迷路) GoogleBlocklyMaze

前回の記事ではGoogleがプログラミング教育を目的として公開している「ブロックリー・ゲーム」というサイトの「迷路」のレベル1~レベル5について解説しましたので、今回はレベル6~レベル10について解説していきます。解説を読む前にまずは自分で実際に問題を解いてみてください。
まずは以下のGoogleの「ブロックリー・ゲーム」というサイトへアクセスし「迷路」をクリックしましょう。

GoogleBlocklyMaze(ブロックリー・ゲーム)

引用元:ブロックリー・ゲーム

レベル6解説

レベル6は以下の問題になります。

GoogleBlocklyMaze_レベル6

あらたに「もし左に進めるなら 実行」というブロックが追加されました。このブロックの右のプルダウンの部分をクリックすると「もしまっすぐ進めるなら」と「もし右に進めるなら」を選択できるようになっています。つまり、このブロックは条件分岐を表すブロックです。
条件分岐は基本的にループと組み合わせて使うことが多く、ここでも「「まで繰り返す」📍 実行」のブロックの中に入れて使います。
ループや条件分岐の意味がよくわからない方は以前の記事「プログラミング学習(アルゴリズムとプログラミング言語)について」をご確認ください。

レベル6:解答

最初から目的地まで「基本的にまっすぐ進み、もし左に進めるなら左を向く」という繰り返しの動きが答えになります。

GoogleBlocklyMaze_レベル6解答

レベル7解説

レベル7は以下の問題になります。

GoogleBlocklyMaze_レベル7

一見すると複雑そうに見えますが、慌てずに最初から目的地までの道のりをなるべくシンプルに通るにはどのルートを通れば良いか考えてみましょう。

レベル7:ヒント

以下の赤線のルートを通るプログラムを考えてみましょう。

GoogleBlocklyMaze_レベル7ヒント
レベル7:解答

最初から目的地まで「基本的にまっすぐ進み、もし右に進めるなら右を向く」という繰り返しの動き、つまりレベル6の解答と左右が入れ替わっただけです。

GoogleBlocklyMaze_レベル7解答

レベル8解説

レベル8は以下の問題になります。

GoogleBlocklyMaze_レベル8

今度はレベル6とレベル7の問題を合わせたような問題です。
この問題も出来るだけシンプルなプログラムを考えるようにしましょう。

レベル8:解答

最初から目的地まで「基本的にまっすぐ進み、もし左に進めるなら左を向く、もし右に進めるなら右を向く」という繰り返しの動きです。

GoogleBlocklyMaze_レベル8解答

レベル9解説

レベル9は以下の問題になります。

GoogleBlocklyMaze_レベル9

あらたに「もしまっすぐ進めるなら 実行 そうでなければ」のブロックが追加されました。
そうでなければ=まっすぐ進めない ということなので、このブロックはまっすぐ進める場合と進めない場合で条件分岐するプログラムとして使用します。
この問題も複雑そうに見えますが、これまでの問題と同様、慌てずに最初から目的地までの道のりをなるべくシンプルに通るにはどのルートを通れば良いか考えてみましょう。

レベル9:ヒント

以下の赤線のルートを通るプログラムを考えてみましょう。

GoogleBlocklyMaze_レベル9ヒント
レベル9:解答

最初から目的地まで「基本的にまっすぐ進み、もしまっすぐ進めないときは左を向く」という繰り返しの動きです。

GoogleBlocklyMaze_レベル9解答

レベル10解説

レベル10は以下の問題になります。

GoogleBlocklyMaze_レベル10

さて、最後のレベル10は今までの問題より難しいのですが、いきなり画面にヒントが書かれています。
「この難しい迷路を解けますか?左側の壁をたどってみてください。上級のプログラマー向けの迷路です!」
実はこの【壁をたどる】という考え方は迷路などの複雑な形を通る時の定番の考え方で、これを思いつくかどうかが一つのポイントなのにいきなりヒント言っちゃいましたね。
ヒントに書かれていた左の壁をたどるとは以下のような青線をたどっていくイメージです。
(ちなみにこの問題は右の壁をたどっても解けるので左右どちらでも構いません)

GoogleBlocklyMaze_レベル10ヒント
レベル10:ヒント(正解の動き)

青線をたどるように以下の動きをして目的地まで行きましょう。

GoogleBlocklyMaze_レベル10ヒント(正解の動き)
レベル10:解答1

最初から目的地まで「もしまっすぐ進めるならまっすぐ進んで左を向く、まっすぐ進めないなら右を向く」という繰り返しの動きです。
イメージとしては真っ暗な部屋や目隠しされた状態から脱出する時に左手で壁を触りながら道を確認して進んでいる感じですね。
このような動きはプログラミングの手法として「左手法」というので興味のある人は調べてみましょう。

GoogleBlocklyMaze_レベル10解答1
レベル10:解答2

解答1の向きを左右入れ替えた場合の解答です。「右手法」と言います。

GoogleBlocklyMaze_レベル10解答2

以上でGoogle Blockly Maze(ブロックリー・ゲームの迷路)は全て終了です。
最後のレベル10は少し難しかったかも知れませんが、よくある解き方なので慣れておきましょう。
今回のようなブロックをつなぎ合わせるタイプのビジュアルプログラミングとしてはScratch(スクラッチ)が有名で、Scratchはもっと色々な種類のブロックが用意されていて自作ゲームを作ったりアニメーションを作るなど出来ることももっと多いです。Scratchについてもいつかご紹介します。

それでは、お疲れさまでした。

コメント

タイトルとURLをコピーしました