論理演算子を使った総ざらいの設問です。NOT、AND、ORを使いこなしてクリアを目指しましょう。
ステージのポイントとしては、宝石と閉スイッチの両方があるマスでは右に脇道があって2マス先に宝石、というパターンが見て取れます。
次に曲がる位置ですが、行き止まりとは限らないのでisBlockedを条件にするのは適切ではないようですよ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
for i in 1 ... 8 { moveForward() if isOnGem && isOnClosedSwitch { collectGem() toggleSwitch() turnRight() moveForward() moveForward() collectGem() turnLeft() turnLeft() moveForward() moveForward() turnRight() } else if isOnClosedSwitch { toggleSwitch() turnLeft() } else if isOnGem { collectGem() } } |