コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています!
今回はDay47コードを学ぼう1「右に行くか、左に行くか」の攻略になります!!
なんとこれで「コードを学ぼう1」が最後になります!
みなさんお疲れ様でした!!
解答例と解説
解答例と解説を確認していきます!
解答例
コードの解答例は以下のようになります。
解答例を動画で確認する
上記のコードを実行した結果がこちらになります。
ステージ攻略「右に行くか、左に行くか」
攻略
ステージを攻略していきましょう!
クリア条件は、宝石を8個取って、スイッチを7個切り替えることです。
もう一度解答例のコードを見ながら確認しましょう。
タイトルにあるように、右か左に曲がることがこのステージの鍵になります。
そこでnavigateAroundWallの名前で、
「右に曲がる」「左に曲がる」関数を定義しました。
「宝石のマスにいる」時と「前と左が行き止まり」の時に右を向いてほしいので、
「||」を使いました。
「||」についての確認はこちらから↓
同じように「光っていないスイッチのマスにいる」時と、
「前と右が行き止まり」の時に左を向いてほしいので、「||」を使っています
これで必要な場所で右や左を向くことができるようになりました!
whileループと先ほど定義した関数navigateAroundWallを使ってステージ内をByteに歩かせます。
歩いている間に「宝石」もしくは「光っていないスイッチ」があったらそれを取って進むようにします。
ここで注意すべきことは宝石やスイッチのマスにたどり着いた時に「2つ分こなすようにする」ことです。
18〜21行目や24〜27行目はこれを表しています。
理由は、1つ取り終えた後にもう1つのところに行くと、navigateAroundWallが優先してしまい、Byteの向きが変わってしまうからです。
まとめ
コードを学ぼう1の最終課題はどうでしたか?
僕が考えたコードでは「宝石のマスにいる時」や「光っていないスイッチのマスにいる時」のif文が2回出てくるので、どちらが優先されるかを注意する必要がありました。
もちろん違うクリア方法もあるかと思いますが、それぞれ注意すべきことが出てくるはずなので、「コードをステップ実行」で確認していくことが大事ですね!!
次回はいよいよコードを学ぼう2になります。
少し難しくなってくるかもしれませんが、ここまでついてこれたあなたなら大丈夫。
また、ここまで勉強してきてプログラミングに興味を持った人は、
実際にプログラミング教室に通ってみるのもおすすめです。
今なら春の入会キャンペーン実施中です。
ロボットプログラミングに興味がある方はこちらもおすすめ。
これからの時代を見据えて学んでいくために、
ぜひ選択肢のひとつとして考えてみてください。
それではDay48変数ユニットの「記録する」でお会いしましょう!!