コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています。
今回はDay51「7つの宝石を集める」どうぞ!!

解答例
まずは解答例を確認しましょう。
解答例
コードの解答例は次のようになります。

解答例を動画で確認する
上記のコードを実行した結果がこちらになります。
ステージ攻略「7つの宝石を集める」
ステージを攻略していきましょう!

今回は縦5マスを行ったり来たりすることになります。
というのもワイヤーフレームがあり、
宝石がランダムに出現するからです。
ワイヤーフレームについては↓こちらからどうぞ

whileループの条件は「7つ集めるまで」
今回もwhileループを使っていきます。
whileループの詳細は↓から

宝石は最初5マスにランダムに置いてあります。
このうちどれかを取るとまた別の場所に出現します。
つまりステージには常にいくつかの宝石があることになります。
今回のクリア条件は『宝石を7つ集める』ことです。
7つより少なくてもダメだし、多くてもダメです。
そこで、whileループの条件は『宝石を7つ集めるまで』とします。
条件を書くときに使うのが『<』です。
算数で習いますよね。
「○<□」とあれば「○は□より小さい」となります。
これを使って次のような条件を作ります。
gemCounter < 7
『gemCounterの値が7より小さい間』という条件をつくることができました。
つまりgemCounterの値が1・2・3・4・5・6の時は動き続けます。
これをwhileループの条件にします。
往復しながら宝石を7つまで数える

ステージは左の画像の赤で囲われた5マスのみです。
両端は行き止まりになっているので、宝石を7つ取るまではこの中を往復します。
moveForward()
で歩き続けながら、行き止まりで
turnLeft()
turnLeft()
で後ろを向きます。
宝石を取ったら数えるのは前回と同じです。
collectGem()
gemCounter = gemCounter + 1
これで宝石を取ったら数字が増えていきます。
これらをif文も使ってwhileループに入れます。
whileループの条件は『宝石を7つ集めるまで』なので、
集め終わったら自動で止まってくれます。
まとめ:7つの宝石を集める
初めてwhileループの条件に変数を使いましたね!
今回のポイントを振り返りましょう。
- 『<』などを用いるとwhileループの条件に変数が使える
次回はDay52「3つの宝石と4つのスイッチ」でお会いしましょう!それでは!!
