コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています!
今回はDay28コードを学ぼう1「繰り返しを探す」の解説になります。
解答例と解説
解答例と解説から見ていきます!
解答例
コードの解答例は以下のようになります。
コマンドが多くて初めて画像が2枚になりました笑
解説
上記のコードを実行した結果がこちらになります。
ステージ攻略「繰り返しを探す」
攻略
ステージを攻略していきます!
今回のステージでは、ワイヤーフレームはありません。
ワイヤーフレームについて詳しくはこちらから↓
つまり、宝石やスイッチの位置がランダムに変わることがないんですね。
この変わらないことを利用して、条件分岐させていきます!
上の画像の赤枠で囲った部分に注目します。
Byteの目の前のマスから順に、
「宝石→光っていないスイッチ→光っているスイッチ→宝石→光っていないスイッチ」
となっています。
それでは、宝石と光っていないスイッチ・光っているスイッチの1つずつを確認していきます。
宝石
赤枠の中の2つの宝石に注目します。
それぞれの宝石の右側に道が続いていて、一番奥に宝石があります。
マスを数えると、両方とも3マスいった先で左に曲がってそこに宝石がありますよね。
2つが共通しているため、「宝石のマスにきたら」という条件をつけることができます!
具体的には、
「(宝石のマスにきたら)宝石を取る→右を向く→3マス進む→左を向く→1マス進む→宝石を取る→後ろを向く→1マス進む→右を向く→3マス進む→右を向く」
となります。
こうすることで、右側を処理して元の位置に戻ってくることができます!!
関数として定義しておきます!
光っていないスイッチ
今度は赤枠の中の光っていないスイッチに注目します。
光っていないスイッチは2つあって、両方とも左のマスに宝石があります。
これを取って元の位置に戻ります。
「スイッチを切り替える→左を向く→1マス進む→宝石を取る→後ろを向く→1マス進む→左を向く」
ですね。
これで左側の処理ができます。
共通しているので、関数として定義しておきましょう!
光っているスイッチ
では、光っているスイッチの箇所はどうでしょうか。
ここは、説明文も見ながら確認していきます。
説明文の例には以下のようなfor文のコードが提示されています。
ループの回数は5回で、2行目にはmoveForward()が入っています。
そして、3行目で「宝石のマスにいる時」、
5行目で「光っていないスイッチの上にいる時」としています。
これは赤枠の5マスを進む間の条件分岐を表しています。
2行目のmoveForward()で1マスずつ進む間に、それぞれの条件の時にはそれに応じた行動をするんですね。
光っているスイッチのマスでは条件分岐がありません。
1回分のmoveForward()を消費するのみとなります。
まとめ
タイトルは「繰り返しを探す」でしたが見つけることはできましたでしょうか!
赤枠で囲った5マスに注目することができれば見えてくるのではないかと思います。
- 似ている形のマスがないかを探してみる
- 共通している処理は関数として定義しておく
次回からは新しいユニットです!
その名も論理演算子・・・!
またまた難しそうな名前だ笑
ひとつひとつ丁寧にわかりやすく解説するのでよかったら見にきてください!!
こまで勉強してきてプログラミングに興味を持った人は、
実際にプログラミング教室に通ってみるのもおすすめです。
今なら春の入会キャンペーン実施中です。
ロボットプログラミングに興味がある方はこちらもおすすめ。
これからの時代を見据えて学んでいくために、
ぜひ選択肢のひとつとして考えてみてください。
それではDay29「NOT演算子を使う」でお会いしましょう!