Lightbotは子ども向けのプログラミング学習アプリです。4〜8歳向けの「Junior Coding Puzzles」と、9歳〜の「Programming Puzzles」と無料版の3種類がリリースされています。
今回はその無料版の「Lightbot : Code Hour」にチャレンジしてみました
全ステージをクリアしたので、感想や特徴などを書きたいと思います
複数のユーザーで利用できる
セーブスロットが追加できるので、1つのアプリを複数ユーザーで利用することができます。これで兄弟で使うことができますね
あと、キャラクターは男の子のロボットと女の子のロボットから選べます。日本語にも対応しています
コースは全部で20コース
- 基本・・・8コース
- プロシージャ・・・6コース
- ループ・・・6コース
全20コースです
無料アプリですが、結構やりごたえがあります
プレイ方法
ロボットをコントロールして全ての青いタイルに明かりをつけるが目的。青いタイルの上に移動して電球のブロックを実行すれば明かりがつきます
使えるコマンドは全部で7種類
この無料版では最終的に7種類のコマンドが登場します
歩行コマンド。1ブロック前進します | |
ライトコマンド。タイルに明かりをつけます。明かりがついたタイルで実行すると明かりが消えます | |
左コマンド。左に向きます(反時計周り) | |
右コマンド。右に向きます(時計周り) | |
ジャンプコマンド。段差を飛び乗ったり、飛び降りたりします | |
P1コマンド。PROC1を実行します | |
P2コマンド。PROC2を実行します |
薄いグレー(選択中は黄色)がコマンドが置けるエリアです。
このステージだと、MAINに置けるコマンドは1つ、PROC1に置けるコマンドは3つです
Lightbotの特徴
プロシージャ(関数)の概念がある
複数のコマンドをまとめてプロシージャにすることができます
このステージでは・・・・
・前に進む
・前に進む
・前に進む
・明かりをつける
・右回転
という5つの動きを1つのプロージャにまとめています。メインからこのプロシージャを3回呼び出すことで目的が達成できます
目的を達成するための動きの中に同じパターンが存在すれば、それをプロシージャとしてまとめるとプログラムがスッキリします。このアプリではプロシージャをうまく利用しないとクリアできないステージがたくさん登場します
ループをプロシージャを使って実現
プロシージャ(関数)の中からプロシージャを呼び出すことでループ処理を実現しています
関数の中から関数(自分自身)を呼び出すのは「再帰」という方法で、プログラミングでよく(?)使うテクニックです。これでループを実現するのはなかなか面白いです。Lightbotでは最小限の種類のコマンドで、複雑な動きができるように工夫されています
プロシージャが2つ登場するステージでは、PROC1からPROC2を呼び出し、PROC2からPROC1を呼び出しを行うことで、複雑な動きを繰り返し実行することができるようになります
最後に
こういったキャラクターをコントロールするプログラミングのチュートリアルは多数ありますが、その中でも難易度が高めです
キャラクターの動きが早いので、できればもうちょっとゆっくり動作するモードが欲しいです(さらに早くすることはできる)。動きが早いため、間違っていた時にどの地点で間違ってしまったのかが非常にわかりにくいです。不満な点はそれくらいでしょうか
難易度的には小学生の高学年〜です。それなりに頭を使うので、大人でも十分楽しめます。僕は最後のステージで随分悩みました。一回わかってしまうと簡単なのですが・・・
おまけ:最後のステージのヒント
最後のステージはちょっと複雑なので、ヒントです
同じ形のエリアが4つあるので、4つに分割して考えるとわかりやすいです。1→2→3→4の順に明かりをつけていきます
分割した1/4のエリアの明かりを全てつけるコマンドをPROC1におきます。最後にPROC2を呼び出します
2つめのエリアの開始位置に移動するようにPROC2にコマンドをおきます。最後にPROC1を呼び出します
このPROC1(明かりをつける)とPROC2(開始位置に移動する)を交互に実行することで、4つのエリアの全ての明かりをつけることができます
面白かったので、有料版のアプリも買ってみました。そちらは後日レビューしたいと思います