コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています!
今回はDay6、「バグつぶしの練習」の解説になります。
次回に引き続き「バグ」ですね!
ではいってみましょー!!

解答例と解説
初めに、解答例と解説です!
解答例

解説
最後の修正からクリアまでがこちらです。
うまくいかない場合は、何度もコードを実行してみるのがいいですね。
今回のポイント
ステージを初期状態に直す
今回のステージでは、あらかじめ入力されたコマンドを実行すると
実行し終わった後に初期の条件と変わってしまします。
具体的には、スイッチが入っていたのに消えてしまいます。
もう一度コードを実行すればスイッチは入りますが、
ステージ画面を見ながらコードの修正をしたいのにわかりづらくなってしまうと思います。
そこでステージを初期画面に戻すために「ページを最初からやり直す」
という機能がありますので紹介します。
まずは下の画像の赤い四角で囲われた部分をタップします。

すると下のような画面になるので、赤枠の「ページを最初からやり直す」をタップすればOK!!

初期のステージの状態を確認したい場合や、
初めからやり直したい場合には、上記に注意しながら実行してみましょう!
ステージ攻略「バグつぶしの練習」
攻略
今回は追加のコマンドや新しい要素がないので早速攻略に進みます!!
クリア条件はどうなっているでしょうか?

今回も説明文にはクリア条件が書かれていません。
その場合は前回同様ステージ画面の左上を確認します。
「宝石0/1,スイッチ1/2」とありますが、ここで注意!
説明文にもありますが、1/2になっているので
スイッチは初めから入っている状態(光っている)です。
1/2とは、「2つあるうち1つはスイッチが入っている」の意味ですね。
ということは、
宝石を1つ取って、切れている(光っていない)方のスイッチを1つ切り替える
ことができればクリアのようです。
更に今回もあらかじめコマンドが入力されています。
バグを直しながらクリアを目指します。
それでは、まずはコードを1度実行してみましょう。
なんだか全然的外れな行動をしてしまっていますね。
Byteも頭をかしげています笑
コマンドを全て消してやり直したほうが早そうですが
(そういうやり方も1つの手だと思います)
バグつぶしの練習なので、1つ1つ根気よく修正していきます!

まずは2行目と3行目のmoveForward()によって
前に進みすぎてしまっているので1行目と2行目の間にturnLeft()を入れてあげます。
さらに4行目(まだコードは画像の通りと考えてください)のturnLeft()は不要なので、削除します。
ここまで書き換えて実行した結果が次のとおりです。
だいぶ惜しいところまでいきましたね!!
この時点のコードを下に載せておきます。

9行目のcollectGem()が一足早かったですね。
これを10行目のmoveForward()の後に持っていきます。
このあとは一番上の解答例になります。
まとめ
攻略でも書きましたが、全部消して1から書き直すというのも1つの方法だと思います。
クリア方法は1つではありません!!
- 「ページを最初からやり直す」でステージを初期画面に戻せる
次回はDay7「最短の道順」でお会いしましょう!ではまた!!
