![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSHy8W%2Fbtq8ntHf4Nl%2FoFIXHsc6N3gHBlPujfawNk%2Fimg.png)
도전 과제 : 패턴을 분해 하고 나만의 함수를 만들어 보세요. 마지막 도전 과제 입니다. 명령 패턴을 찾아낸 다음 패턴을 호출하는 함수를 만들어 보세요. 함수를 활용하여 퍼즐을 해결해 보세요. 예제) func moveThenToggle() { moveForward() moveForward() toggleSwitch() } 퍼즐이 더 복잡하다면, 첫 번째 함수에 포함된 일부를 재활용하여 새로운 함수를 정의해 보세요. 그런 다음, 두 개의 함수를 활용하여 퍼즐을 풀어 보세요. 한번 해보시고 아래 내용 드래그 하시면 보입니다. ----------------------------------------------------------------- func moveTurnToggle(){ moveForward() ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoUOJ0%2Fbtq8lyvzweY%2FoGf6Gllm1E4d2qOdLpZ3e1%2Fimg.png)
목표 : 여러 가지 함수에 맞추어 해결 방법을 분해해 보세요. 방금 배웠듯이 간단한 작업을 수행하는 함수를 정의하고 다른 함수 내에서 해당 함수를 호출하여 더욱 큰 작업을 수행하는 것은 정말 유용한 기술입니다. 계속 연습하면 코드를 더 읽기 쉽게 만들 수 있습니다. 가령, turnAround()처럼 목적에 맞게 함수 이름을 지정할 수 있기 때문이죠. 더 큰 작업을 수행하는 함수를 만들었기 때문에 개별적인 명령에 대해서는 더 이상 생각할 필요가 없으므로 코드를 작성하는 과정도 간단해집니다. 1. 코드를 실행하여 solveRow()가 호출되면 어떤 결과가 나타나는지 확인합니다. 2. 더 큰 문제를 해결하도록 solveRow()의 코드를 수정합니다. 3. solveRow()를 다른 명령과 조합하여 퍼즐을 해결..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbdef34%2Fbtq8lYnGrnu%2FlpRktJUQ4pHnJuTHK2gW7K%2Fimg.png)
목표 : 함수에서 함수를 호출해 보세요. 지금까지 정의했던 함수들은 moveForward() 및 collectGem()과 같은 기존 명령을 호출했습니다. 이제 어디 한번 색다른 시도를 해볼까요? turnAround() 함수는 캐릭터가 몸을 돌려 다른 방향을 향하도록 명령하는 함수입니다. 이 함수를 solveStair() 함수 안에 호출할 수 있습니다. solveStair() 함수를 호출하여 더욱 큰 문제를 해결해 보세요. 큰 문제를 작은 단위로 나누는 프로세스를 분해라고 합니다. 1. solveStair() 함수를 정의하고 turnAround() 함수를 안에서 호출합니다. 2. solveStair() 함수를 필요한 다른 함수와 함께 호출합니다. 3. 보석 4개를 수집하여 퍼즐을 해결합니다. -------..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwtCq5%2Fbtq8lXI0GpH%2FBvO7VP3PNtOmn8UG2VbEvk%2Fimg.png)
도전 과제 : 반복 패턴을 파악하고 함수를 정의해 보세요. 이번 도전 과제에서는 수집해야 할 보석이 많습니다. 사실 너무 많아서 퍼즐을 해결할 방법이 한 두 가지가 아니에요. 패턴을 반복하는 경로를 선택하고 함수에 그 패턴을 사용해 보세요. 처음에는 코드가 작동하지 않더라도 계속 시도해보세요. 연습을 통해 완벽해질 수 있습니다! 준비가 되었다고 생각하면 언제든 다음 단계로 갈 수 있습니다. 한번 해보시고 아래 내용 드래그하면 보입니다. ----------------------------------------------------------- func get() { collectGem() moveForward() } func turnRight(){ turnLeft() turnLeft() turnLeft()..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnmWWP%2Fbtq8mlbMqUf%2Fdsuk5k6QBbtFaSHPdjV8l1%2Fimg.png)
도전 과제 : 반복 패턴의 함수를 정의해 보세요. 이번 도전 과제에서는 보석을 수집해야 합니다. 각각의 보석은 스위치 옆에 있습니다. 이전 퍼즐에서 사용한 명령 패턴을 반복하기보다 기존의 명령으로 보석과 스위치를 묶어 처리하는 새로운 함수를 만들어보세요. 이번 도전 과제에서는 함수의 이름을 마음대로 정해도 됩니다. 함수의 이름을 정하고 함수를 정의한 후, 이름을 입력하여 함수를 호출하세요. 지금까지의 다른 함수에서 사용했던 것과 같은 방법입니다. 한번 해보시고 아래 내용 드래그하면 보입니다. ------------------------------------------------------- func Get() { moveForward() collectGem() moveForward() toggleSwit..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzgP1s%2Fbtq8lyoi1xo%2FRs2E68iHHrxaSCPPOn4y51%2Fimg.png)
목표 : 오른쪽으로 돌 수 있도록 함수를 정의하고 사용해 보세요. 이전 퍼즐에서는 오른쪽으로 한 번 돌아봤습니다. 왼쪽으로 세 번 도는 것을 활용하니 어렵지 않았죠. 그런데 오른쪽으로 한 번 더 돌아야 한다면 어떻게 해야 할까요? 왼쪽으로 세 번 도는 것을 turnRight() 명령에 입력하고 해당 명령을 원하는 만큼 실행하는 것이 더욱 효과적이겠죠. turnRight()와 같이 일련의 작업을 수행하는 명령을 함수라고 합니다. 사실 이러한 함수들을 계속 사용하고 있었답니다. 지금까지 사용했던 명령은 미리 작성된 함수였던 것이죠. 함수를 정의하려면 중괄호 { } 사이에 명령을 입력하여 수행할 동작을 설정합니다. 1. 함수 본문(중괄호 { } 사이)을 선택합니다. 2. turnLeft() 명령을 세 번 입력..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQMtDz%2Fbtq8lYUF3DP%2F5afMrC3vvBUzH8xkU5lbk0%2Fimg.png)
목표 : 구성을 활용하여 오른쪽으로 돌아보세요. turnRight() 명령이 없는 걸 눈치챘나요? 캐릭터가 오른쪽으로 몸을 돌려 보석에 다가가려면 어떻게 해야 할까요? 때로는 새로운 동작을 수행하도록 기존의 명령을 조합하여 코딩 문제를 해결할 필요가 있습니다. 이러한 기술은 구성이라고 불립니다. 1. 이전에 사용한 명령만을 가지고 오른쪽으로 돌아갈 방법을 파악 합니다. 2. 구성을 통해 캐릭터가 오른쪽으로 몸을 돌리도록 합니다. 3. 명령을 입력하고 보석을 수집합니다. --------------------------------------------------------------- moveForward() moveForward() moveForward() turnLeft() turnLeft() turnL..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeoybXf%2Fbtq8kKibqup%2FoPmxdjg5WmrWHf26KmijPk%2Fimg.png)
도전 과제 : 선택지를 평가하고 가장 빠른 길을 선택해 보세요. 이번 레슨의 마지막 도전 과제입니다. 지금까지보다 더욱 복잡하고 넓은 세계에서 Byte를 이리저리 움직여 보세요. 이 세계에는 포털이 두곳 있습니다. 해결 방법은 여러 가지에요. Byte가 보석을 줍고 스위치를 작동할 수 있는 가장 빠른 길을 생각해 보세요. 포털은 한 개를 사용하거나 두 개 모두를 사용할 수도 있습니다. 지금까지 배웠던 모든 명령을 사용해 보세요. 디버깅 기술을 활용해야 할 수도 있어요! 팁! 캐릭터를 바꾸고 싶으세요? Byte를 누르면 새로운 모습을 선택할 수 있습니다. 한번 해보시고 아래 내용 드래그 하시면 보입니다. ----------------------------------------------------- mov..
Comment