[Swift Playground/코딩 배우기1] 박스 안에서 코드, Boxed in Code

코딩 배우기1 - 박스 안에서 해결방법

Swift Playground는 간단하게 게임을 하면서 Swift의 문법을 익힐 수 있는 프로그램 입니다.

그중에서도 '코딩 배우기1 - 박스 안에서' 단계의 해결방법을 공유하고자 글을 작성합니다!

혹시 제가 작성한것 보다 간단하거나 더 좋은 솔루션이 있다면 모두 공유를 하면 좋을 것 같습니다.

 

이 단계의 문제해결 방법의 포인트는 반복되는 행동을 찾는 것 입니다!

 

1. 캐릭터가 위치 한 곳에 보석 or 스위치가 존재하는가 판별

2. 코너 회전

3. 직진

 

처음부터 코드를 짜려고 하기보다는 우선 캐릭터가 어떻게 이동해야 하는지 천천히 생각해보는게 좋습니다,

노트에 행동을 하나하나 적어 나가는 것도 좋은 방법입니다.

 

우선, 캐릭터는 이동을 할때마다 발 밑에 꺼진 스위치가 있다면 스위치를 작동시키고, 보석이 있다면 보석을 수집합니다.

이와 같은 행위는 이전 단계에서도 계속 해왔기 떄문에 if문으로 빠르게 구현할 수 있습니다!

fucn checkEvent(){
	if isOnClosedSwitch {
    	toggleSwitch()
    } else if isOnGem {
    	collectGem()
    }
 }

 

그 다음 행동을 생각해 봅니다! 캐릭터는 이제 이동을 해야 합니다.

func code1() {
    moveForward()
    checkEvent()
    turnLeft()
}

func code2() {
    moveForward()
    checkEvent()
    moveForward()
    checkEvent()
    
    turnLeft()
}


for i in 1...2 {
    code1()
}
for i in 1...3 {
    code2()
}
    

제가 생각한 코드는 이렇 습니다!

막상 다른 분들의 풀이를 찾아보면 더 깔끔해 보이는 느낌도 있지만...ㅎㅎ

깔끔하고 좋은것 보단, 우선 본인이 어떻게 문제를 해결했는지 그 아는 과정이 중요하기 때문에

저의 코드만 공개합니다. 다른분들은 어떻게 해결 하셨나요? 서로에게 도움이 되었으면 좋겠습니다!