右手法のアルゴリズム自体は前ステージのものを流用できます。ルートの最後に宝石があるので、それをゴールにする形でループを組みましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//右手法で進むアルゴリズムを定義 func navigateAroundWall() { if isBlocked && isBlockedRight { turnLeft() navigateAroundWall() } else if isBlockedRight { moveForward() } else { turnRight() moveForward() } } //宝石に到達するまで右手方で進むアルゴリズムを続ける while !isOnGem { navigateAroundWall() } //到達したら宝石をゲット collectGem() |