これまで、プログラミング体験ゲーム「アルゴロジック」のアルゴロジック1のジュニア問題からチャレンジ問題をやってきましたが、いよいよ「上級」問題となりました。
今回お送りする、アルゴロジック1 チャレンジ問題「上級」の14問をもって、アルゴロジック1の解答とクリアするための考え方の解説は終了となります。
アルゴロジックでは、答えは一つではないため色々なクリア方法がありますが、本記事ではなるべく少ないブロックでクリアすると貰える「◎」クリアのルートを解答例に記載します。
アルゴロジックのルールにつきましてはルール解説編をご一読ください。
「上級」の各問題の解答と考え方
上級編では、お馴染みとなった繰り返し処理が主体となります。
そして、繰り返しをどう使うかが重要なポイントとなってきます。
各ステージの旗の数も多く、辿る模様も長く複雑になってきますので、どのようなルートを辿るか、うまく見極めていきましょう。
36 複雑な紋様
画像引用:JEITA
さすが上級、いきなり複雑な模様が最初に目に入り、どのように辿るかぱっと見わかり辛いです。
このステージでは、ある模様がいくつか重なってできているのですが、お分かりになりますでしょうか?
考え方としては、まずロボットが1マス進んだ次に斜めにもう1マス進めて、その先にも・・・という具合に、「1マス進み、斜めに向く」を繰り返すと8角形が出来上がるという事が分かります。
そしてその8角形が8個集まると、このステージの模様が出来上がります。
つまり、8角形を作る動作(+次の繰り返し開始に向きを変える動作)をかたまりとして、それを8回繰り返す事で、全てのラインを辿ることができます。
解答例
画像引用:JEITA
①まっすぐ1マス移動します
②回転ブロックでロボットを45°回転します
③繰り返しブロックにより同じ動作を8回繰り返します
④回転ブロックでロボットを45°回転します
⑤繰り返しブロックにより同じ動作を8回繰り返します
37 線香花火
画像引用:JEITA
このステージはまず、一つの火花を辿る方法を探しましょう。
火花の先の部分は、1マスずつ進む→戻るを繰り返すのですが、ロボットは後ろには戻れないため、左右の動きで辿るのがポイントです。
解答例
画像引用:JEITA
①まっすぐ3マス移動します
②左1マス移動します
③右1マス移動します
④回転ブロックでロボットを45°回転します
⑤繰り返しブロックにより同じ動作を8回繰り返します
⑥回転ブロックでロボットを90°回転します
⑦右3マス移動します
⑧繰り返しブロックにより同じ動作を4回繰り返します
38 四隅の回廊
画像引用:JEITA
このステージでは、スタート位置から各四隅の旗をジグザグに取ってから戻ってくるのを繰り返してもクリアできます。
もちろん正解ですが、ここでは「◎」クリアするためのルートを解説します。
ヒントは、開始位置をど真ん中にしないという事です。
ロボットを2マス左に移動させ、そこを繰り返しの開始位置にしてみましょう。
解答例
画像引用:JEITA
①左2マス移動します
②まっすぐ2マス移動します
③まっすぐ2マス移動します
④左2マス移動します
⑤回転ブロックでロボットを90°回転します
⑥右2マス移動します
⑦まっすぐ4マス移動します
⑧繰り返しブロックにより同じ動作を4回繰り返します
※②~⑦を動作のかたまりとします
39 ピーナッツ
画像引用:JEITA
このステージではこれまでと違い旗の位置が定期的に並んでいません。
どこを繰り返していくのかもわかり辛く、結構難易度は高いと思います。
個別に旗を狙うのではなく、思い切ってステージ全体を四分割し、そのうちの1つのエリア内のマスを全て踏むようにしちゃいましょう。
全てのマスを踏みたいので、一つの辺を3マスで進むのではなく、2マス+1マスで進むようにしてみましょう。
あとは、4回繰り返せばすべての旗を回収できます。
解答例
画像引用:JEITA
①まっすぐ2マス移動します
②まっすぐ1マス移動します
③回転ブロックでロボットを135°回転します
④繰り返しブロックにより同じ動作を8回繰り返します
⑤回転ブロックでロボットを90°回転します
⑥繰り返しブロックにより同じ動作を4回繰り返します
40 輪の輪
画像引用:JEITA
一見8角形の丸を8回繰り返せば良さそうに見えますが、さすが上級。このステージは一筋縄ではいきません。
考え方ですが、まず1つの丸は8角形(=まっすぐ8マス分)であることを認識します。
そして8マス進んでスタート地点に戻ってきた後に次の丸のスタート地点を目指すのですが、次の丸のスタート地点(丸と丸の接地点)は3マス先です。
つまり、動作のかたまりとしては8マス+3マスの11マス進む必要があるという事になります。
この11マスをどう進むかが最大のポイントとなります。
繰り返し処理をうまく使って11マスにしたいのですが、奇数なので簡単にはいきませんので少し工夫してみましょう。
「1マス+方向転換」を3回繰り返し、これを更に4回繰り返します。すると合計で12マス進むことになります。
1マス行き過ぎてしまうため、方向転換とともに1マス戻るようにしてみます。
上記を動作のかたまりとして、8回繰り返すようにします。
(繰り返し処理の重なりがあってかなり複雑になってきますね)
解答例
画像引用:JEITA
①まっすぐ1マス移動します
②回転ブロックでロボットを45°回転します
③繰り返しブロックにより同じ動作を3回繰り返します
④繰り返しブロックにより同じ動作を4回繰り返します
⑤回転ブロックでロボットを180°回転します
⑥まっすぐ1マス移動します
⑦繰り返しブロックにより同じ動作を8回繰り返します
41 キャンディ
画像引用:JEITA
このステージも複雑な模様に見えます。どんな模様が重なっているかを考えてみましょう。
よく見ると、数字の「6」のような形をしたものが8個あるのが見えてきます。
この数字の「6」の形をどうやって辿るかを考えます。
ブロックを少なくするには、縦から攻めるのではなく、横からスタートしてみましょう。
解答例
画像引用:JEITA
①左2マス移動します
②左1マス移動します
③回転ブロックでロボットを45°回転します
④繰り返しブロックにより同じ動作を8回繰り返します
⑤右2マス移動します
⑥回転ブロックでロボットを315°回転します
⑦繰り返しブロックにより同じ動作を8回繰り返します
42 太陽
画像引用:JEITA
定期的に配置されてると思いきや、少しずれているようにも見えます。このステージでも、ステージの開始位置から繰り返し処理を考えてしまうとクリアできませんので、動作のかたまりの開始位置までまずは移動してしまいます。
どこを開始地点とするかですが、2本並んでいる旗の手前の旗を開始位置として、2本ずつ旗を取る動作をかたまりとして繰り返してみましょう。
解答例
画像引用:JEITA
①まっすぐ3マス移動します
②まっすぐ1マス移動します
③回転ブロックでロボットを315°回転します
④左3マス移動します
⑤繰り返しブロックにより同じ動作を8回繰り返します
43 二つの三日月
画像引用:JEITA
ここでは左右が向き合った形で上と下に模様があります。
上と下で繰り返し処理を変える必要があるのですが、よく見ると上下対象となっているので、一番下まで移動した動作を、同じ動作で上まで戻ってくればクリアできます。
解答例
画像引用:JEITA
①回転ブロックでロボットを45°回転します
②まっすぐ1マス移動します
③繰り返しブロックにより同じ動作を4回繰り返します
④回転ブロックでロボットを45°回転します
⑤まっすぐ1マス移動します
⑥繰り返しブロックにより同じ動作を4回繰り返します
⑦回転ブロックでロボットを180°回転します
⑧繰り返しブロックにより同じ動作をもう一度繰り返します
44 発電所風
画像引用:JEITA
このステージではこれまでもあったパターンで、一つのトゲを辿る動作をいかにシンプルにするか、またロボットは後ろに戻れないためなるべく回転を少なくする方法を考えてみましょう。
解答例
画像引用:JEITA
①まっすぐ1マス進みます
②回転ブロックでロボットを315°回転します
③まっすぐ3マス進みます
④左1マス進みます
⑤右1マス進みます
⑥回転ブロックでロボットを90°回転します
⑦右2マス進みます
⑧繰り返しブロックにより同じ動作を8回繰り返します
45 回転のこぎり
画像引用:JEITA
このステージはトゲが8個あるので、シンプルにトゲを超えて次のトゲに向かうルートが動作のかたまりとします。
スタート位置を把握し、次の繰り返しのスタート位置がどこになるか見つけてみましょう。
解答例
画像引用:JEITA
①まっすぐ1マス移動します
②回転ブロックでロボットを135°回転します
③まっすぐ2マス移動します
④回転ブロックでロボットを315°回転します
⑤まっすぐ1マス移動します
⑥回転ブロックでロボットを315°回転します
⑦繰り返しブロックにより同じ動作を8回繰り返します
46 メガネ
画像引用:JEITA
上と下が対象になっているので、一先ず上半分を辿る方法をさぐります。
メガネのレンズ部分は八角形ですが、縦横の辺が2マスになっているので、単純に1マスずつ移動では繰り返せません。
レンズ部分を4分割して、同じ動きを4回繰り返して八角形を辿ってみましょう。
解答例
画像引用:JEITA
①まっすぐ2マス移動します
②左1マス移動します
③左1マスとまっすぐ1マスを組み合わせてななめに進みます
④まっすぐ1マス移動します
⑤回転ブロックでロボットを90°回転します
⑥繰り返しブロックにより同じ動作を4回繰り返します
⑦回転ブロックでロボットを180°回転します
⑧まっすぐ2マス移動します
⑨繰り返しブロックにより同じ動作をもう一度繰り返します
47 四角い花びら
画像引用:JEITA
このステージは、中級最後の問題である「35 ペンペン草」によく似ています。
花びら部分の四角は、角を曲がる動作を4回繰り返して辿ってみましょう。
なるべく使用するブロックを少なく方向転換は最小限にするため、横の花びらから攻めていきます。
解答例
画像引用:JEITA
①左2マス移動します
②まっすぐ1マス移動します
③左1マス移動します
④回転ブロックでロボットを270°回転します
⑤繰り返しブロックにより同じ動作を4回繰り返します
⑥右2マス移動します
⑦回転ブロックでロボットを45°回転します
⑧繰り返しブロックにより同じ動作を4回繰り返します
48 手裏剣
画像引用:JEITA
このステージは、「43 二つの三日月」と考え方が似ています。
手裏剣の一つのトゲの半円を辿り、向きを変えて反転してからもう一つの半円を辿します。これで一つのトゲを辿ることが出来るので、後は同じ動きを4回繰り返すようにします。
解答例
画像引用:JEITA
①まっすぐ1マス移動します
②回転ブロックでロボットを315°回転します
③繰り返しブロックにより同じ動作を4回繰り返します
④回転ブロックでロボットを270°回転します
⑤まっすぐ1マス移動します
⑥回転ブロックでロボットを45°回転します
⑦繰り返しブロックにより同じ動作を4回繰り返します
⑧繰り返しブロックにより同じ動作を4回繰り返します
49 全部
画像引用:JEITA
チャレンジ問題「上級」の最後のステージです。
これでもか!という感じに敷き詰められた旗、「さぁ、やってみなさい」という気迫を感じます。
どこから攻めていったらよいか・・・
要は、全てのマスを踏むようにすれば良いという事になります。
全てのマスを踏むやり方は「39 ピーナッツ」で使っています。この方法を応用してみましょう。
ルートが見えたら、後は繰り返し処理をうまく利用してクリアを目指してみてください。
解答例
画像引用:JEITA
①まっすぐ1マス移動します
②繰り返しブロックにより同じ動作を3回繰り返します
③回転ブロックでロボットを135°回転します
④繰り返しブロックにより同じ動作を4回繰り返します
⑤回転ブロックでロボットを90°回転します
⑥繰り返しブロックにより同じ動作を4回繰り返します
アルゴロジック1 チャレンジ問題「上級」まとめ
今回はチャレンジ問題の「上級」問題を解説しました。
難易度マックスで、結構頭を使わないとクリアすらもできないステージも多く、上級では繰り返しをどこで使うか、またロボットの後ろに動けないという特性を考慮しないとならない等、特にゲーム性が高い印象を受けました。
自分の命令した通りにロボットが動き、トライアンドエラーを繰り返してクリアできた時の喜びは、プログラミングにおいても同じだと思います。
次は【アルゴロジック2】にもチャレンジし、そちらについても解答と考え方を掲載していきたいと思っています。
コメント
ありがとうございます。
なくても行けたから次はチャレンジよりもむずかしいのだしてください
大納言小豆よりわかりやすかったです。
神ーーーーーーーーーーーーー
確かにチートは使うな
あのね、まだ二年生だけどここ発見してすげーって言われるようなりました。
ありがとうございます。
ありがとうございました。
学校でもすげーって言われます
ありがとwww
これみなくても簡単やな。
全部終わった だからまた観ずにやりたい
秒で出来る(覚えたら)
豚狐概鯲杯尹更を投して知天
あざス【(笑)】www
意外と簡単やし皆で競争出来たり出来るから楽しいしとても簡単で面白かったです!
わかりやすいよーーー@
小5でぜんぶできたでー!
とてもおもろいし楽しいし簡単やでー!
ありがとうございます。
本当にチャレンジ問題意味わかんなかったのでこれを見ました!
学校の先生に見せます!!本当にありがとうございました!!またよろしくお願いします!!
ありがとうございました
これを読むことであっさりとクリアできましたありがとうございます
ありがとう
分かりやすい
じゅにやもん題
あざす
同じでーす!!
本当に解んないところがあったけどこれを見たらできました。ありがとうございます。
Great post.
Thank you very much!
これすごくいいです!!!!!!!!!!
これでチート使えます!
ありがとうございます。
あなた何故かわからないけど好きです。
チートは使うなwwww
I am in fact thankful to the owner of this web site who has
shared this enormous piece of writing at at this time.
Thank you very much!
いいえ☻