본문 바로가기
swift 프로그래밍 기초

7. 부기봇 boogiebot 춤추는 로봇

by JeromeEugeneMorrow 2019. 1. 3.
728x90

부기부기 .. 이런 노래 있는데 8장은 이런 디스코 춤추는 로봇 화면을 코딩하는 장임.

Xcode를 실행하고 BoogieBot.playground 를 실행하면서 7장이 시작.

부기봇 로봇을 보려면 xcode 에 있는 assistant editor 를 실행해야 함.

view > Assistant editor > show Assistant editor 를 실행하면 오른쪽 화면이 2개로 갈라짐.

Xcode 버전에 따라 이 화면에 부기봇이 안나오는 경우가 있어서 살짝 당황했다.

Xcode 가 사용하는 언어는 계속 바뀌고 있으므로 빨간색 느낌표로 오류가 나오는 부분을 찾아 구글로 검색하여 고쳐줘야만 실제로 부기봇이 잘 동작하는 것을 확인할 수 있다. (이때 개발자가 좀 도와줬다).

부기봇은 API Application programming Interface 라고 하는 함수의 세트들을 이용하게 된다.

부기봇에서 사용한 API 들은 아래와 같다.

Start BoogieBot:

 

startBot()

 

Move BoogieBot:

 

leftArmUp(), leftArmDown(), rightArmUp(), rightArmDown()

leftLegUp(), leftLegDown(), rightLegUp(), rightLegDown()

shakeItLeft(), shakeItRight(), shakeItCenter()

jumpUp(), jumpDown()

 

Change BoogieBot Color:

 

 

fabulize(), defabulize()

 

춤추는 것은 즐겁다. 하지만 하나의 움직임을 차례차례로 작성한다면 단순한 춤조차도 반복되는 작업을 해야할 것이다. 그래서 사람들은 종종 개별적인 스트링의 움직임을 함께 움직인다. 그리고 전체 루틴에 이름을 붙인다.

 

func doTheDisco() {

    leftArmUp()

    shakeItRight()

    leftArmDown()

    shakeItCenter()

 

}

 

이렇게 하면 doTheDisco 함수를 여러개를 묶어서 정의한 것이다.

 

그리고 나서 로봇을 실행하고 색을 입히고

춤을 추게 한다.

 

startBot()

fabulize()

doTheDisco()

doTheDisco()

 

doTheDisco()

 

그 다음 부기봇을 만들어서 anmiated gif 로 저장할 수 있는 버튼을 추가한다.

 

이 단원을 통해 다른 춤 루틴을 크리에이트하였는데 함수를 조합하여서. 컴퓨터 과학에서는 이것을 알고리듬 개발이라고 부른다.

알고리듬은 수학이 포함되어 비디오 압축 처리를 하는 경우도 있고 수학적인 계산이 포함되어 있지 않아 앱이 새로운 메시지가 있는지 어떤 노티피케이션을 띄워야 하는지를 표시하는 경우도 있다. 

 

어쨌거나 7장은 API의 개념에 대해 배웠다. 함수의 세트이다. 다른 개발자들들끼리 서로 도와주는 것이다.  일단 기본적인 프로그래밍을 배우면, API로 일하는 것에 관하여 더 많이 배울 수 있게 된다.

함수를 사용하고 정의하는 것 그리고 함수를 반복하여 함께 사용하는 것에 대해서 또 연습할 수 있다.

 

댄스 루틴은 움직임의 사전계속의 수행과 반복되는 패턴을 수행하는 것, 함수로 만들어진 함수를 만들고 다시 함수를 만드는.... 

그렇게 다 만든 다음에 Gif로 친구들에게 전달할 수 있다.

 

아무튼 이 챕터에서는 실제 예제 파일이 에러가 나는 데 그걸 구글에서 검색해서 수정해 주는 것이 좀 필요해서 좀 짜증난다.

 

728x90
반응형

'swift 프로그래밍 기초' 카테고리의 다른 글

6장 함수 functions  (0) 2018.12.15
5.3 Storyboard 파일의 편집  (0) 2018.08.14
5장 5.2 Explore Your project  (0) 2018.08.02
5장 First app - 5.1 ㄴNew project  (0) 2018.08.02
4장 - HelloWorld  (0) 2018.08.01

댓글