(前ステージと同じ「値を増やす」というタイトルですが、たぶんこれ誤訳なんじゃないですかね?)
一番外側のルールはwhileやifでも書けると思いますが、毎回固定なのでforにしてみました。途中曲がり角でisBlocked判定が付くので、これをゴール条件にしない方がスッキリするという意図もあります。
変数gemCounterに1を足すタイミングがポイントです。宝石をとった数を数えるには、collectGem()する度に1足していく必要があるので、セットで並べて書けばOKです(前後どちらでも大丈夫)。
実際のgemCounterの中身が想定通りに増えているか確認できませんが、ステージクリア判定になるのであれば大丈夫と思って良いでしょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
var gemCounter = 0 //ステージの最後まで繰り返す for i in 1 ... 16 { moveForward() //宝石を見つけた時の処理 if isOnGem { collectGem() gemCounter += 1 //宝石を取ったらカウンター変数にも1を足す } //曲がり角に来た時の処理 if isBlocked { turnRight() } } |