橋をまたいでこっち側とあっち側それぞれ3×3のスペースを見比べ、あちら側の開スイッチの数だけこちら側で宝石を取れという指示です。
開スイッチの数は、最初からnumberOfSwitchesというコマンドが調べてくれることになっており、その結果がswitchCounterに代入されます。ここはそういうものだと思って流してください。これと、自分でカウントした宝石数を比較してループを繰り返します。
こちら側の3×3ゾーンは真ん中には立ち入れず外周を周回していけば、時折宝石が湧いて出るので、それを取っていけばOKです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//あっち側の開スイッチの数が変数switchCounterにセットされる let switchCounter = numberOfSwitches //ゲットした宝石のカウンター var gemCounter = 0 //上記2つの変数を比較するwhileループを組む while gemCounter < switchCounter { //ナビゲーション処理(突き当たったら右に曲がる) if isBlocked { turnRight() } moveForward() //宝石処理 if isOnGem { collectGem() gemCounter += 1 } } |
わかりにくいです