前回のプログラミング体験ゲーム「アルゴロジック」のアルゴロジック1のジュニア問題「回転」の解答編に続き、今回は、アルゴロジック1 ジュニア問題の「繰り返し」の5問について、解答に加えクリアするための考え方を解説します。
ルールがまだよくわからないという方はルール解説編をご一読ください。
また、各問題に解答例を記載しますが、ここでの解答例は公式サイトの解答例を記載します。
「繰り返し」の各問題の解答と考え方
ここではプログラミングにおいても必ずと言っていいほど出てくる「繰り返し処理」を使用します。
同じ動作の場合、毎回同じブロックを置いても良いですが、使えるブロックが足りなくなったりするため、「繰り返し」ブロックを使って同じ動作を繰り返し実行するようにしてみましょう。
繰り返しブロック
数字のあるカッコと、カッコ閉じのセットで使います。
このカッコ内に置かれたブロックの命令を、数字の回数繰り返します。
数字をマウスでクリックするごとに①~④、⑧まで指定できます。
16 たての旗
画像引用:JEITA
まずは繰り返しブロックの使い方を覚えましょう。
1マス先にある旗を4つ取ります。
「↑4」とすると一直線上に旗を全部取ってくれそうに思えますが、アルゴロジックではロボットの通り道にある旗は取ってくれません。(止まった場所の旗しか取れません)
次にパッと思いつく方法は、「↑1」を4個並べる形です。
もちろんそれでも正解ですが、繰り返しブロックを使って「↑1」を4回繰り返す動作にチャレンジしてみましょう。
繰り返しブロックの数字を「4」にして、カッコの中に「↑1」を入れることで、「まっすぐ1マス」を4回繰り返して旗を4つ取ることができます。
解答例
画像引用:JEITA
①まっすぐ1マス移動します
②繰り返しブロックにより同じ動作を4回繰り返します
17 ななめ2列の旗
画像引用:JEITA
先ほどは前に進むだけでしたが、ここでは縦と横の動きが必要になります。
繰り返しブロックは、カッコの中であれば複数の動きでもOKですので「まっすぐ2マス」と「右1マス」の動きをを繰り返してみましょう。
解答例
画像引用:JEITA
①まっすぐ2マス移動します
②右1マス移動します
③繰り返しブロックにより同じ動作を3回繰り返します
18 たて2列の旗
画像引用:JEITA
ここでは、縦に4つずつ並んだ旗を左右1列ずつ取っていく事も考えられますが、別の方法を考えてみると左→右と2つ旗を取る動作を手前から繰り返すことでクリアできそうです。
ポイントとなるのは、繰り返し処理の最後のロボットの場所です。
繰り返し処理が終わる最終地点は、次の繰り返しの開始地点となりますので、この面のように同じ間隔で規則的に同じ動作を繰り返したい場合、最初の位置(中央)に戻る動作を入れるのがポイントです。
わかりづらい方は下の解答例の図をご覧ください。
解答例
画像引用:JEITA
①左1マス+まっすぐ1マスを組み合わせて移動します
②右2マス移動します
③左1マス移動します
④繰り返しブロックにより同じ動作を4回繰り返します
※上記③の左1マスで中央に戻る動作を入れるのがポイントです
19 たて3列の旗
画像引用:JEITA
先ほどの「たて2列」から1列増えましたが、考え方としては先ほどの2列と同じです。
繰り返し処理が終わる最終地点は、次の繰り返しの開始地点であると先ほど説明しましたが、この面も同じ間隔で規則的に旗が並べられているため、スタート地点と同じ左端が最終地点になるように繰り返し処理の中身を指定してみましょう。
目の前の旗を最初に取りたくなりますが、あえて遠い所の旗を最初に取るようにすると、ブロックの数が少なくて済みます。
解答例
画像引用:JEITA
①まっすぐ1マス+右4マスを組み合わせて移動します
②左2マス移動します
③左2マス移動します
④繰り返しブロックにより同じ動作を4回繰り返します
20 四角の旗
画像引用:JEITA
ジュニア問題の基本問題の最後の面では、方向転換と繰り返しの合わせ技でクリアします。
また、繰り返し処理を更に繰り返します。
具体的には、まっすぐ1マスを4回繰り返して90°方向転換し、その動作を4回繰り返す。という事になります。
繰り返しブロックのカッコの中に、繰り返しブロックを入れます。
↑1を4回繰り返し+90°方向転換 を、さらに繰り返しブロックで囲むような形になります。
解答例
画像引用:JEITA
①まっすぐ1マス移動します
②繰り返しブロックにより同じ動作を4回繰り返します
③回転ブロックでロボットを90°回転します
④繰り返しブロックにより同じ動作を4回繰り返します
アルゴロジック1 ジュニア問題「繰り返し」まとめ
いかがでしたでしょうか。ここまででアルゴロジックにおいて基本的なブロックの使い方を学習しました。
冒頭でも述べましたが、繰り返し処理はプログラミングにおいて必ずと言って良いほど出てきます。最後の問題のように、繰り返し処理を更に繰り返すことも出てきます。
面を見たときに、どのように旗を取って行けば良いか、どこで繰り返しが使えるか。というのを最初に思い描けるようになると、プログラミング的思考が身に付いているのではないでしょうか。
次回は【アルゴロジック1】解答編 ジュニア問題「応用問題」を解説したいと思います。
コメント
ありがとうございます♪
最kin♪やっていたからちょうどよかったと思ゥ sei♪確にわかった。
「20 四角の旗」には難易度の高い別解がありますね。
何通りかありますが以下に一例をあげます。
ループ開始8
↑2
↑1
右135度
←1
ループ終
難易度的にジュニア問題の範囲からは外れていますが、
この別解の考え方が、タイトルの似たチャレンジ問題の最短解で使われます。
・・・・・・・・・・・・・・わかりやすいです
わかないところをやさしくおしえてくれるからうれしいめりけんぱーくのまんなかでまちあわせね
わからないところをおしえてくれるからうれしいね
たすかった
わからないところをおしえてくれるからうれしいね
弟も喜んでた。
ありがとうございます
うそつき
面白いし楽しい
わかりやすい!!
かわいい
っっっっっっっっっっっっっっh
アルゴロシック作るなアホベーダ