開啟與關閉傳送門

Portal On and Off

// 紀錄數量
var gems = 0   // 收集的寶石數
var turns = 0  // 轉反方向的次數 (每次迴轉都會 +2)

let portal = purplePortal

// 關閉傳送門
portal.close()

// 如果收集的寶石不到 7 個,就繼續走。
while gems < 7 {
    walk(along: .left, onMove: {
        // 往前走時,如果遇到寶石就收集、遇到開關就打開
        if isOnGem { 
            collectGem()
            gems += 1
        } else if isOnClosedSwitch {
            toggleSwitch()
        }
    }, onTurnOtherSide: { // 往反方向轉時,紀錄轉向的次數
        turns += 1
        if turns == 2 { portal.open()  } // 第一次迴轉時,打開傳送門
        if turns == 4 { portal.close() } // 第二次迴轉時,關閉傳送門
    })
}

Last updated