Swift Playgrounds 코딩 배우기 1 > 조건 코드 > 박스 안에서
목표 : 둘러싸인 격자의 아이템 처리하기
조건 : 함수, 루프, 조건식을 사용해야 한다.
나는 반시계 방향으로 한바퀴 도는 것을 택했다.
이때 현위치를 제외한 경로에 있는 블록에 순서를 붙이면
1,2,4,6 번 블록에서 turnLeft() 를 사용하게 되는데 이를 반복문을 이용하여 코드를 짤 수 있다.
총 8번의 진행중에서
1,2,4,6은 turnLeft()가 있고
3,5,7,8은 turnLeft()가 없다.
이것을 반복이 가능하도록 다듬으면
첫번째로 방문하는 블록(1)은 반복에서 제외하고,
마지막으로 방문하는 블록(8)은 결과에 영향을 미치지 않지만 turnLeft()를 넣는다.
그럼
2,4,6,8 은 turnLeft()가 있고,
3,5,7은 turnLeft()가 없고... 짝수,홀수로 나눠진다.
그 특성을 조건문을 이용하여 적용해주면 된다.
전체코드_
func collectOrToggle() {
if isOnClosedSwitch {
toggleSwitch()
} else if isOnGem {
collectGem()
}
}
moveForward()
collectOrToggle()
turnLeft()
for i in 1 ... 7 {
if i % 2 == 1 {
moveForward()
collectOrToggle()
turnLeft()
} else {
moveForward()
collectOrToggle()
}
}
'Coding > Swift' 카테고리의 다른 글
Playgrounds 코딩 배우기 2 > 유형 > 올바른 포털 설정하기 (0) | 2022.05.03 |
---|---|
Playgrounds 코딩 배우기 1 > 알고리즘 > 오른쪽, 왼쪽으로 구르기 (0) | 2022.05.02 |
Playgrounds 코딩 배우기 1 > 알고리즘 > 오른손 법칙 (0) | 2022.04.29 |
Playgrounds 코딩 배우기 1 > 조건 코드 > 스마트하게 함수 정의하기 (0) | 2022.04.22 |
Swift의 세계로 (0) | 2022.04.22 |