while문만 이용한 코드
while !isBlocked { // 앞이 막혀있지 않는동안
moveForward() // 한칸 이동
if isOnClosedSwitch { // 스위치가 닫혀있다면
toggleSwitch() // 스위치를 켜라
}
}
turnRight() // 오른쪽으로 돌아라
moveForward() // 한칸이동
turnRight() // 오른쪽으로 돌아라
moveForward() // 한칸이동
while isOnGem { // 보석이 있는동안
collectGem() // 보석을 수집해라
moveForward() // 앞으로 한칸이동
}
turnLeft() // 왼쪽으로 돌아라
moveForward()
turnLeft()
while !isBlocked { // 앞이 막혀있지 않는동안
moveForward()
if isOnClosedSwitch { // 스위치가 닫혀있다면
toggleSwitch() // 스위치를 켜라
}
}
함수정의후 for, while 활용한반복문
func collectAndtoggle(){ // 함수 collectAndtoggle 만듦
if isOnClosedSwitch{ // 스위치가 닫혀있으면
toggleSwitch() // 스위치를 열고
}
if isOnGem{ // 보석이 있으면
collectGem() // 보석을 수집해라
}
moveForward() // 앞으로 한칸이동
}
for i in 1 ... 3 { // 3번 반복문
while !isBlocked{ // 앞이 막혀있지 않는동안
collectAndtoggle() // collectAndtoggle 함수를 실행
}
if isBlocked && isBlockedLeft{ // 앞과 왼쪽 벽이 막혀있으면
turnRight() // 오른쪽으로 회전하고
moveForward() // 앞으로 한칸 이동후
turnRight() // 오른쪽으로 회전해라
}else if isBlocked && !isBlockedRight{ // 앞의 벽이 막혀있고 오른쪽벽이 막혀있지 않으면
turnLeft() // 왼쪽으로 회전하고
moveForward() // 앞으로 한칸이동
turnLeft() // 왼쪽으로 회전해라
}
}
마지막에 한칸 이동하는게 마음에 들지 않지만 논리연산자를 통하여 코딩해 보았다.
Swift Playground - 스위프트 플레이그라운드
코딩배우기1 - 현금의 땅
'Swift랑 친해지기 > Swift PlayGround' 카테고리의 다른 글
임의의 직사각형 (0) | 2021.12.28 |
---|---|
루프내포시키기 (0) | 2021.12.28 |
for문, while문 활용문제2 (0) | 2021.12.27 |
while문, for문 예제 (0) | 2021.12.27 |
알맞은 루프 선택하기 (0) | 2021.12.27 |