【アルゴロジック1】解答と考え方 チャレンジ問題「初級」

プログラミング

前回はプログラミング体験ゲーム「アルゴロジック」のアルゴロジック1のチャレンジ問題「入門」の解答を解説してきました。
今回は、アルゴロジック1 チャレンジ問題「初級」の14問を、解答に加えクリアするための考え方を解説していきます。

アルゴロジックでは、答えは一つではないため色々なクリア方法がありますが、本記事ではなるべく少ないブロックでクリアすると貰える「◎」クリアのルートを解答例に記載します。

アルゴロジックのルールにつきましてはルール解説編をご一読ください。

【プログラミング体験ゲーム】アルゴロジック1のルールとは?
2020年、プログラミング教育が小学校で必修化されましたが、親としては学校などで実際にどのような学習が行われているかよくわかっていませんでした。 そこで本記事は、プログラミング勉強中の筆者がアルゴロジックをやってみたという話題です。

「初級」の各問題の解答と考え方

初級編では、入門編でやった基本的な動作に加え、応用の要素が含まれてきます。
繰り返し処理がキーとなってきますので、どこを繰り返していくかを注意深く観察してクリアの道筋を見つけましょう。



08 十字

アルゴロジック1 08 十字
画像引用:JEITA

1つの旗を取り、その動きを繰り返せばクリアできそうです。
次の旗を取るために、方向転換を入れる所までを動きのかたまりとします。

解答例
アルゴロジック1 08 十字 解答例
画像引用:JEITA

右2マス移動します
左2マス移動します
③回転ブロックでロボットを90°回転します
繰り返しブロックにより同じ動作を4回繰り返します

09 廊下の奥

アルゴロジック1 09 廊下の奥
画像引用:JEITA

こちらも繰り返し処理でいけそうです。
このあたりから、どこをどう繰り返すかの見極めが難しくなってきます。
旗を取るまでのルートはすぐに見えますが、旗を取った後に戻ってくる場所、つまり次の繰り返しを開始する地点をどこにするかがポイントとなります。

解答例
アルゴロジック1 09 廊下の奥 解答例
画像引用:JEITA

まっすぐ2マス移動します
左3マス移動します
左4マス移動します
繰り返しブロックにより同じ動作を4回繰り返します

10 左右に並ぶ部屋

アルゴロジック1 10 左右に並ぶ部屋
画像引用:JEITA

こちらは下から左右の旗を取り、上に向かって繰り返していきます。
次の繰り返し処理の開始地点を見極め、そこに戻ってくるまでを動作のかたまりとします。

解答例
アルゴロジック1 10 左右に並ぶ部屋 解答例
画像引用:JEITA

まっすぐ2マス移動します
左2マス移動します
右4マス移動します
左2マス移動します
繰り返しブロックにより同じ動作を3回繰り返します

11 十字の池

アルゴロジック1 11 十字の池
画像引用:JEITA

このステージも、旗を取ってから次の繰り返しの開始位置までの移動を動作のかたまりとします。

次の繰り返し位置の考え方としては、まずはスタート位置~旗までのルートを考えます。そして、次の旗を同じように取るルートのスタート位置を見つけます。あとはそのスタート位置まで移動させます。
この一連が動作のかたまりという事になります。

解答例
アルゴロジック1 11 十字の池 解答例
画像引用:JEITA

まっすぐ2マス移動します
左2マス移動します
まっすぐ3マス移動します
④回転ブロックでロボットを90°回転します
繰り返しブロックにより同じ動作を4回繰り返します

12 回廊と階段

アルゴロジック1 12 回廊と階段
画像引用:JEITA

このステージはこれまでと違って2つの繰り返しを使用します。
ぐるりと回る動作と、階段状にジグザグ移動する動作と、動作のかたまりを2種類考えてみましょう。

解答例
アルゴロジック1 12 回廊と階段 解答例
画像引用:JEITA

まっすぐ8マス移動します
②回転ブロックでロボットを90°回転します
繰り返しブロックにより同じ動作を3回繰り返します
まっすぐ2マス移動します
右2マス移動します
繰り返しブロックにより同じ動作を3回繰り返します

13 うずまき

アルゴロジック1 13 うずまき
画像引用:JEITA

一見、卍のようなステージでどこを繰り返し動作とするかぱっと見でわかり辛いです。
これまでは旗を取ってから次の繰り返しのスタート位置まで移動することを考えていました。しかしこのステージでは開始時のロボットの位置旗の位置(次の繰り返し動作の開始位置)とが一致してるので、旗の位置まで移動と方向転換を動作のかたまりとして繰り返してみましょう。

解答例
アルゴロジック1 13 うずまき 解答例
画像引用:JEITA

まっすぐ4マス移動します
右4マス移動します
まっすぐ2マス移動します
左4マス移動します
⑤回転ブロックでロボットを90°回転します
繰り返しブロックにより同じ動作を3回繰り返します

14 家

アルゴロジック1 14 家
画像引用:JEITA

一筆書きでもよくみる図形です。
ここでも色々なルートが考えられますが、「◎」クリアするため、最初のロボットの向きを利用してブロックの数を少なくしましょう。
まっすぐ移動する動作からスタートして、下の四角を繰り返し動作し、屋根の部分を最後に辿ります。

解答例
アルゴロジック1 14 家 解答例
画像引用:JEITA

まっすぐ4マス移動します
②回転ブロックでロボットを90°回転します
繰り返しブロックにより同じ動作を4回繰り返します
左に2マスまっすぐ2マスを組み合わせてななめに進みます
右に2マスまっすぐ2マスを組み合わせてななめに進みます

15 かざぐるま

アルゴロジック1 15 かざぐるま
画像引用:JEITA

このステージで◎クリアするためには、動作のかたまりをどうするかがポイントとなります。
回転(方向転換)の向きを工夫することで、ブロックの数を少なくすることが出来ます。

解答例
アルゴロジック1 15 かざぐるま 解答例
画像引用:JEITA

まっすぐ2マス移動します
右に2マスまっすぐ2マスを組み合わせてななめに進みます
③回転ブロックでロボットを270°回転します
左に4マス移動します
まっすぐ3マス移動します
繰り返しブロックにより同じ動作を4回繰り返します

16 四角いメガネ

アルゴロジック1 16 四角いメガネ
画像引用:JEITA

このステージではまず上の四角を繰り返しを使って辿るのを一つの動作のかたまりとし、その動作のかたまりをもう一度繰り返します。
繰り返し処理の中に繰り返し処理を入れてみましょう。

解答例
アルゴロジック1 16 四角いメガネ 解答例
画像引用:JEITA

右に3マスまっすぐ3マスを組み合わせてななめに進みます
②回転ブロックでロボットを270°回転します
繰り返しブロックにより同じ動作を4回繰り返します
④回転ブロックでロボットを180°回転します
繰り返しブロックにより同じ動作を8回繰り返します

※③で4回繰り返した後に④で180°回転(方向転換)するのがポイントです

17 風車

アルゴロジック1 17 風車
画像引用:JEITA

ここも動作のかたまりを4回繰り返すのですが、なるべく回転ブロックを少なくしてみましょう。
次の繰り返しの開始時の向きに方向転換してしまうのがポイントです。

解答例
アルゴロジック1 17 風車 解答例
画像引用:JEITA

まっすぐ4マス移動します
右2マス移動します
③回転ブロックでロボットを270°回転します
左2マス移動します
まっすぐ2マス移動します
左2マス移動します
繰り返しブロックにより同じ動作を4回繰り返します

18 組木

アルゴロジック1 18 組木
画像引用:JEITA

このステージも繰り返し処理を使用します。
開始位置がラインの角ではなく途中からになっていることに注目です。
角まで行きたくなりますが、ステージの開始位置繰り返しの開始位置が同じになるようにすることを意識しましょう。

解答例
アルゴロジック1 18 組木 解答例
画像引用:JEITA

左2マス移動します
まっすぐ2マス移動します
右2マス移動します
まっすぐ2マス移動します
⑤回転ブロックでロボットを90°回転します
繰り返しブロックにより同じ動作を4回繰り返します

19 ベース

アルゴロジック1 19 ベース
画像引用:JEITA

このステージは4隅に4つのかたまった旗があるので、順番に4隅を攻めていきたくなります。もちろんそれでもクリアとなりますが、それでは「〇」クリア止まりとなってしまいます。
「◎」でクリアするためには、旗を取るルートを工夫する必要があります。
ヒントは直線的に旗を取り方向転換までを一つの動作のかたまりとして、繰り返し処理を行います。発想の転換が必要です。

解答例
アルゴロジック1 19 ベース 解答例
画像引用:JEITA

まっすぐ1マス移動します
まっすぐ2マス移動します
まっすぐ1マス移動します
④回転ブロックでロボットを135°回転します
繰り返しブロックにより同じ動作を8回繰り返します

20 ジグザグ迷路

アルゴロジック1 20 ジグザグ迷路
画像引用:JEITA

このステージも繰り返し処理を使います。

「◎」でクリアするためには、スタート時にロボットの向きが横向きになっているのを下向きに方向転換するのがポイントです。

最初にいきなり方向転換してしまいます。そして繰り返し処理で下に下っていき、最後に旗の方に寄る動作を足してみましょう。

解答例
アルゴロジック1 20 ジグザグ迷路 解答例
画像引用:JEITA

①回転ブロックでロボットを90°回転します
左2マス移動します
まっすぐ2マス移動します
左2マス移動します
まっすぐ2マス移動します
繰り返しブロックにより同じ動作を3回繰り返します
左2マス移動します

※②③④⑤を動作のかたまりとして繰り返します。

21 田

アルゴロジック1 21 田
画像引用:JEITA

チャレンジ問題「初級」の最後のステージです。

うまく繰り返し処理を使いたいですが、どの動作を繰り返したら良いでしょうか。先ほどの問題20の「ジグザグ迷路」でもありましたが、普通の矢印ブロックでの動作一部繰り返し処理を使うという合わせ技でクリアしていくのがポイントです。
ぐるりと繰り返し処理で周りの旗を取ってから、最後に中央の旗を取る動作を足してクリアします。

解答例
アルゴロジック1 21 田 解答例
画像引用:JEITA

左4マス移動します
まっすぐ4マス移動します
③回転ブロックでロボットを90°回転します
繰り返しブロックにより同じ動作を4回繰り返します
まっすぐ4マス移動します

アルゴロジック1 チャレンジ問題「初級」まとめ

今回はチャレンジ問題の初級編を解説しました。

単純に同じ動作を繰り返すだけではなく、縦横ななめの普通の動作と繰り返しを組み合わせる必要が出てきたりと、応用力が必要になってきます。

応用編でも記載しましたが、プログラミングにおいて答えは一つではありません。

このアルゴロジックでは、より少ないブロックでクリアすると「◎」が付きますが、
最初から最適なルートを完璧に考える必要はありません。

まずは思うままにブロックを置いてみて、「あ、ここが繰り返せそうだな」とか「ここは短縮できそうだな」という事に気付いて、後から修正していくのも良い事です。
むしろそのようなひらめきこそが大事だと私は思います。

プログラミングでは、このように後から内部構造を整理する事を「リファクタリング」と言います。

少しずつ難易度が上がってきますが、色々試行錯誤してみて「◎」のパーフェクトを目指しましょう!

次は【アルゴロジック1】解答編 チャレンジ問題「中級」を解説していきます。

【アルゴロジック1】解答と考え方 チャレンジ問題「中級」
前回のプログラミング体験ゲーム「アルゴロジック」のアルゴロジック1のチャレンジ問題「初級」の解答編に続き、今回はアルゴロジック1のチャレンジ問題「中級」を解説します。

コメント

  1. AIUEO より:

    分かりやすかった〜

  2. 〇〇 より:

    すごい

  3. B型人間です より:

    4つの角の旗ができません
    ○になってしまいます

  4. 匿名 より:

  5. あいうえお より:

    ハイハイで

  6. e80420050 より:


    よくできてるなと強
    く思いました。
    なかなか出来な
    かったので、すっごく嬉しか
    ったです。        
    たまたま見かけました。

                    矢印の所を縦読みしてみて!

  7. KING より:

    皆が喧嘩してるわW ま、とにかくよかったわ

  8. クエスチョン より:

  9. 風見 より:

    黙れ

  10. 榊まなみ より:

    困難なんだと思います。

  11. 匿名 より:

    のまらま゛まむこらのせまわせのにりへ

  12. 匿名 より:

    喧嘩するな

  13. シャンクズ より:

    そうだそうだ

  14. アンチ反対の反対 より:

    黙れ黙れ

  15. IMEI より:

    わかりやすかったです。

  16. 天才 より:

    バカ黙れ

  17. himazinnnnnnnn より:

    suge-

  18. 匿名 より:

    変態

  19. より:

  20. 匿名 より:

    何でそうなるの?

  21. (仮名)ソルガレオ より:

    よく解決法がわかりましたね

  22. 匿名 より:

    ウンコ

    モラセ

  23. 匿名 より:

    じょうきゅうのチャレンジの全部のやり方を教えてくださいよろしくお願いします

  24. 匿名 より:

    チャレンジの全部のやりかかたかをおしえて

  25. 匿名 より:

    チャレンジの全部のやりかを教えてくださいよろしくお願いします

  26. いい より:

    楽しかった

  27. 匿名 より:

    すごくやりやすかった!

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