iOS/swift

세상의 가장자리 코드공유(swift playground - 코딩 배우기2)

돌맹이시터 2021. 5. 4. 13:14

 

 

swift playground를 하다가 해결하는데 시간이 조금 걸렸던 도전과제의 코드 하나를 공유해봅니다.

'세상의 가장자리' 도전과제였는데,

저같은 경우에는 계속 삽질만 하다가 생각을 바꿔서 성공하게 되었어요

 

 

func navCross() {
    if !isBlocked && isBlockedLeft && isBlockedRight {
        moveForward()
    } else if !isBlocked && !isBlockedRight && !isBlockedLeft {
        turnLeft()
        moveForward()
    } else if isBlocked && isBlockedLeft && isBlockedRight {
        turnLeft()
        turnLeft()
    } else if !isBlocked && isBlockedRight && !isBlockedLeft {
        turnLeft()
        moveForward()
    } else if isBlocked && !isBlockedLeft && !isBlockedRight {
        turnRight()
        moveForward()
    }
}
var gemCount = 0
var switchCount = 0
greenPortal.isActive = false
orangePortal.isActive = false
turnLeft()
moveForward()

while switchCount != 6 {
    if isOnGem {
        collectGem()
        gemCount += 1
    }
    if isOnClosedSwitch {
        turnLeft()
        turnLeft()
        toggleSwitch()
        switchCount += 1
    }
    
    if switchCount > 0 && switchCount < 4 {
        greenPortal.isActive = false
    } else if gemCount > 1 && switchCount == 0 {
        greenPortal.isActive = true
    } else if gemCount == 2 && switchCount == 4 {
        greenPortal.isActive = true
    } else if gemCount == 6 && switchCount == 4 {
        orangePortal.isActive = true
    } else if switchCount == 5 {
        orangePortal.isActive = false
    }
    
    navCross()
}

 

위의 코드로 해결했습니다.