前に進みながら5つの宝石を取ります。ステージは固定なのでfor文で単純に5回繰り返しで良いでしょう。
今までと違うのは、collectGem()する度に、gemCounterに数字を1足しておく点です。collectGem()の直後にその処理を書いておけば、繰り返しの度に同じだけ1追加されます。
変数に1を足すには、
1 |
a = a + 1 |
のように書きます。この場合のイコールは数学や算数ので学ような「左辺と右辺が等しい」という意味ではありません。右辺の計算結果を左辺の変数にセットする(代入する、と言います)という意味になります。両方に同じ変数aがあるのでややこしいのですが、右辺のaが今現在(処理前)の値で、それに1を足した結果をもう一度aという箱に入れ直すよ、ということです。
どうしても納得がいかなければ、もう少し簡単な方法があります。
1 |
a += 1 |
という書き方です。+=は一般の数学/算数では見慣れない書き方です。プログラミングの世界独特の記法で「右辺の数字を加える」という意味をもちます。今まで馴染みがないのでかえって混乱しなくて良いのではないでしょうか。変数をカウンタとして使う時は単純に1を足すことが多いので、この書き方は憶えておくと重宝します。
1 2 3 4 5 6 7 8 9 |
//カウント用の変数genCounterを作り、0をセットしておく var gemCounter = 0 for i in 1 ... 5 { moveForward() //宝石をゲットする度にgenCounterも collectGem() gemCounter += 1 } |