今回は、アルゴロジック1 ジュニア問題の「応用問題」の3問について、解答に加えクリアするための考え方を解説します。
ルールがまだよくわからないという方はルール解説編をご一読ください。
また、各問題に解答例を記載しますが、ここでの解答例は公式サイトの解答例を記載します。
「応用問題」の各問題の解答と考え方
応用問題では、これまでやってきた回転や繰り返しを駆使してクリアしていくようになります。
繰り返す回数や繰り返しの中に繰り返しが出てきますので、一つ一つの動作のかたまりを意識すると考えやすくなります。
21 小判
画像引用:JEITA
順番に旗を取って行き、ぐるりと一周するようなルートが考えられます。
どこの動きが繰り返し処理でいけそうか考えてみましょう。
↑2マス、45°回転を繰り返していけば行けそうに見えますが、4回繰り返した地点では次の旗まで4マス分ありますので、繰り返しはここまでとし、その繰り返しの後に↑2マスを置きます。
これで上半分の動きが完成しました。
この面は上下対象となっているので、上記の動作
「↑2マス、45°回転」を4回繰り返し+↑2マス
を一つの動作のかたまりとして、それを繰り返すことで下半分にも同じように旗を取ってクリアすることができます。
解答例
画像引用:JEITA
①まっすぐ2マス移動します
②回転ブロックでロボットを45°回転します
③繰り返しブロックにより同じ動作を4回繰り返します
④まっすぐ2マス移動します
⑤繰り返しブロックにより同じ動作を2回繰り返します
22 四つの円
画像引用:JEITA
このステージは旗を取るのではなく、白いラインを全て通ることでクリアとなります。
パット見でまるっぽいのが4つ均等にあるので、どこかを4回繰り返せば良さそうな雰囲気ですね。
繰り返したい動作のかたまりがどこかを探しましょう。
↑2マス、「↑2マス、315°回転」を8回繰り返し、90°回転
これを一つの動作のかたまりとして、それを4回繰り返すことで全てのラインを通ることができクリアとなります。
解答例
画像引用:JEITA
①まっすぐ2マス移動します
②まっすぐ1マス移動します
③回転ブロックでロボットを315°回転します
④繰り返しブロックにより同じ動作を8回繰り返します
⑤回転ブロックでロボットを90°回転します
⑥繰り返しブロックにより同じ動作を4回繰り返します
23 梅
画像引用:JEITA
ジュニア問題の最終問題となります。
このステージも円が4つ重なっているように見えますので、繰り返し処理でクリアできそうですので、まずは動作のかたまりを見つけましょう。
ぐるっと一周して、次の円に行くために向きを変える動作を一つのかたまりとします。
「↑1マス、45°回転」を8回繰り返し、90°回転
それを4回繰り返すことで全てのラインを通ることができクリアとなります。
解答例
画像引用:JEITA
①まっすぐ1マス移動します
②回転ブロックでロボットを45°回転します
③繰り返しブロックにより同じ動作を8回繰り返します
④回転ブロックでロボットを90°回転します
⑤繰り返しブロックにより同じ動作を4回繰り返します
アルゴロジック1 ジュニア問題「応用問題」まとめ
お疲れさまでした。
ここまで一通りクリアすることで全てのブロックの使い方や繰り返しの方法を体験できました。
繰り返しの項目でも述べましたが、ステージを見たときに、どのように旗を取って行けば良いか、どこで繰り返しが使えるか、というのを思い描けると、プログラミング的思考が身に付いてきていると言っても良いでしょう。
ただし、
最初から最短ルートを完璧に考える必要はありません。
プログラミングにおいても「リファクタリング」という、後から内部構造を整理する事が行われます。
まずは思うままにブロックを置いてみて、「あ、ここが繰り返せそうだな」とか「ここは短縮できそうだな」という事に気付いて、後から修正していくのも良い事です。
むしろそのようなひらめきこそが大事だと私は思います。
これでアルゴロジック1の「ジュニア問題」の解説は終了となります。
次は【アルゴロジック1】解答編 チャレンジ問題を解説していきます。
コメント
たのしいアルごろじっク。@
アルゴロジック3を作ってください。
22番合ってる?
対なるようにしてくださいってなるけど
最後にかぎかっこ(|_|←こんなの)をすればできた
22番最後に『ⅠーⅠ』を付けないとですよ
アルゴロジックがよくわかりました
21????
At this moment I am ready to do my breakfast, once having
my breakfast coming yet again to read more news.
I am genuinely glad to glance at this web site posts which consists of lots of valuable
information, thanks for providing these information.
Thank you very much!
22番、最後に(を付けないとついになりませんよ
やっぱり違いますよね
omosiroi
楽しいです。プログラムが得意になりました。
日本語で書いて。