> 상품소개 > 코드몽키
CODING코딩 어렵다. 쉽게 배우자!

캐릭터 및 참조카드

캐릭터 소개(1개월~4개월 기본과정)

캐릭터설 명
우주에 간 첫 번째 유인원의 이름을 딴 고르도(Gordo)는 학습자들을 도와주고 학습 과정에서 설명을 제공하는 학습의 길잡이입니다. 고르도가 하는 말은 재미있고 유용합니다. 학습자는 언제든 고르도를 클릭하여 고르도의 설명을 다시 읽을 수 있습니다.
원숭이는 본 학습의 메인 캐릭터입니다. 학습자는 코드를 작성함으로써 원숭이가 바나나를 모으는 것을 도와야합니다. 여러분도 아시다시피 원숭이는 물에 젖는 것을 싫어하지만 성격은 매우 상냥합니다.
챌린지 13에서 여러분은 믿음직한 거북이(turtle)를 만나게 될 것입니다. 거북이는 이 바나나들을 모으는 것을 도와 줄 것입니다. 거북이에게 "turn"(돌기) 또는 "step"(걷기) 명령을 내리기 위해서는 먼저 거북이를 클릭해야 합니다. 거북이를 클릭하면 코드에 거북이의 이름이 입력되고 그 다음에는 구두점(.)을 사용하여 거북이에게 명령하려는 액션과 거북이를 구분할 것입니다.
챌린지 50에서 학습자는 비버를 만나게 될 것입니다. 비버는 나무를 매우 좋아합니다. 비버는 자기의 나무를 밟고 물을 건너가서 더 많은 바나나들을 얻을 수 있도록 학습자들을 도와주는데 동의하였습니다. 비버는 오직 앞, 뒤로 "step", 즉 앞, 뒤로만 걸을 수 있습니다. 비버를 사용하려면 우리는 비버의 이름과 비버에게 명령하려는 액션 사이에 점(.)을 입력해야 합니다. 예를 들면:
악어는 챌린지 66에서 만날 수 있습니다. 악어는 코드몽키가 바나나에 도달할 수 있도록 물 위에 다리를 만드는데 사용됩니다. 악어는 오직 "turn" 명령과 "turnTo" 명령만을 수행할 수 있습니다. 우리는 대개 "for" 루프와 함께 악어를 사용합니다.

참조카드

키워드 / 버튼설 명
원숭이가 정해진 거리를 "step", 즉 걷도록 만들려면, 우리는 "step X"라고 작성하고 X 부분에는 원숭이가 걸어야 할 걸음 수를 작성해야 합니다. 예를 들어 "step 10"이라고 작성하십시오. Step 버튼을 누르면 코드에 "step"이라는 단어가 입력될 것입니다.
"Turn" 명령은 방향 (left / right) 또는 각도 (45, 90, 180)을 입력하여 완성되어야 합니다.
ex
turn right
turn 90
    								
turn 버튼을 누르면 코드에 "turn"이라는 단어가 입력될 것입니다.
"Left"와 "right"는 "turn"이라는 문장 다음에 사용되어 프로그래머가 원하는 방향으로 원숭이가 몸을 돌리도록 만듭니다. Left 또는 right 버튼을 누르면 각각 코드에 "left" 또는 "right"라는 단어가 입력될 것입니다.
"turnTo"는 회전을 하는 또 다른 방법입니다. 우리는 방향이나 각도를 사용하는 대신 원숭이에게 특정한 객체(물체)를 향하도록 요구할 수도 있습니다. (예: "turnTo banana"). turnTo 버튼을 누르면 코드에 "turnTo"라는 단어가 입력될 것입니다.
(심플 루프)는 지정된 횟수를 반복하도록 하는 순차적인 명령입니다.
ex
3.times ->
	step 5
	turn left
    								
이 사례에서 원숭이는 "step 5, turn left"를 3 회 반복할 것입니다. 우리가 루프 안에 작성하는 명령은 루프 아래에 들여쓰기(... 부분)를 적용하여 입력해야 합니다. 들여쓰기를 하려면 키보드의 탭(Tab) 버튼을 누르면 됩니다. times 버튼을 누르면 자신의 코드 안에 심플 루프의 시작 부분이 입력될 것입니다
(예: "3.times ->").
변수에 값을 대입하는 것. 변수는 저장 장치와 비슷한 역할을 합니다. 우리는 변수 안에 데이터를 저장하며 필요할 때만 그것을 사용합니다. 변수에 대한 대입(할당)은 식별자(identifier)와 값(value)으로 구성됩니다. 이처럼 이름과 값을 구분하면 변수가 나타내는 정보와는 독립적으로 변수의 이름을 사용할 수 있습니다. 프로그램을 작성할 때 우리는 컴퓨터가 명령을 실행할 때 X의 값이 무엇이 될 것인지 모르는 상태에서 X를 사용할 수 있습니다.
"say" 명령은 원숭이의 옆에 나타나는 말풍선을 만들 수 있으며, 이 말풍선 안에는 우리가 입력한 텍스트가 표시됩니다.
ex
say "Boo!"
									
위 코드를 입력하면 원숭이가 "Boo!"라고 말하도록 만들 수 있습니다.
우리가 입력한 텍스트가 변수가 아니라는 점을 컴퓨터가 알 수 있도록 우리는 원숭이가 말해야 할 문구의 앞, 뒤에 큰따옴표("")를 사용합니다. 주변에 쥐가 있을 때 "say"를 사용하여 보십시오. Say 버튼을 누르면 코드에 "say"라는 단어가 입력될 것입니다.
"distanceTo"는 "step"이나 "say"와 같은 다른 문장과 객체와 함께 사용됩니다. "distance To"를 사용하는 것은 마치 질문을 하는 것과 같습니다.

예: "바나나까지의 거리는 얼마나 됩니까?"라는 질문

이에 대한 대답은 컴퓨터가 계산해 낸 숫자로서 거리를 나타냅니다.
ex
step distanceTo banana
									
컴퓨터는 원숭이와 객체(바나나) 사이의 거리를 측정할 것입니다. 그리고 컴퓨터는 그 결과 얻은 숫자를 사용하여 명령을 수행하며, 이때 컴퓨터는 측정된 값을 명령 "step"에 대한 인수(argument)로서 사용합니다. distanceTo 버튼을 누르면 코드에 "distance To"라는 단어가 입력될 것입니다.
이것은 "for" 루프입니다. "for" 루프는 우리가 객체의 컬렉션(collection)을 가지고 있으며 각각의 객체에 관련하여 특정 액션을 반복적으로 수행하기를 원하는 경우에 사용됩니다. "for" 루프는 컬렉션 (배열) 내의 모든 객체들에 대하여 모든 액션에 수행될 때까지 계속해서 진행됩니다. 컴퓨터가 이 루프를 실행하면, 변수의 이름은 컬렉션 내의 첫 번째 요소로 대체될 것입니다. 첫 번째 요소에 대한 명령을 완료하였다면, 이제 두 번째로 넘어가며 이러한 과정이 반복됩니다.
또한 우리는 "for" 루프의 안에서 "for" 루프를 사용할 수도 있습니다. 대표적인 예는 챌린지 70입니다.
ex : Challenge 70
for b in bananas
	for c in crocodiles
		c.turnTo b
	tumTo b
	step distanceTo b
									
for 버튼을 누르면 내 코드 안에 다음과 같은 텍스트가 입력 될 것입니다. 주석 부분을 참고 하십시오.
ex
for name in array
	#Your code here
									
run 버튼을 누르면 오른쪽의 코드가 실행 될 것입니다. 좌측의 화면을 보면 코드의 실행 결과를 확인할 수 있습니다.
리셋 버튼을 누르면 지금까지 사용자가 오른쪽의 코드에 작성한 모든 것이 삭제되고 챌린지 시작시의 상태로 코드가 리셋 될 것입니다.
자(ruler)는 게임에서 서로 다른 대상 사이의 거리를 측정하는데 사용되는 도구입니다. 예를 들어 자를 사용하여 원숭이와 바나나 사이의 거리를 측정할 수 있습니다. 또한 자(ruler)는 원숭이나 거북이와 같은 캐릭터의 방향이 화면상의 다른 객체를 향하도록 만들기 위하여 회전해야 하는 각도를 측정하는데 도움이 됩니다.
자를 사용하려면, 일단 자를 한 번 클릭하고 마우스를 사용하여 거리 측정을 시작하려는 지점까지 자를 이동시킵니다. 그리고 마우스를 한 번 더 클릭한 다음, 마지막 지점까지 드래그 합니다. 그러면 마지막 지점에 거리를 알려주는 숫자가 나타날 것입니다. 이 숫자는 "step" 구문과 함께 사용할 수 있습니다. 또한 시작 지점에는 또 다른 숫자가 표시되며, 이 숫자는 첫 번째 객체부터 두 번째 객체까지의 각도에 해당됩니다.
이 숫자는 "turn" 구문과 함께 사용됩니다.
각 도전을 마치면 자신의 솔루션에 대한 별점을 받을 것입니다. 이 별들은 다음 기준에 따라 수여됩니다.
  • 첫 번째 별은 모든 바나나를 획득하면 수여됩니다.
  • 두 번째 별은 학습한 내용을 사용하였을 때 수여됩니다.
  • 세 번째 별은 코드가 짧고 간단명료할 경우에 수여됩니다.

캐릭터 소개(5개월~8개월 고급과정)

캐릭터설 명
우리는 게임에서 몇 차례 쥐를 만납니다. 하지만 챌린지 71이 되어서야 쥐를 실제로 컨트롤할 수 있습니다. 쥐는 아이템을 수집하는 것을 좋아합니다.
파트 3에서 우리는 쥐를 도와 성냥들을 수집할 것입니다. 이렇게 하기 위하여 우리는 다음과 같은 단순한 함수를 사용합니다. "grab( )"와 "drop( )"
개미는 챌린지 89에서 소개되어 "until" 루프를 배우는 것을 도와줍니다.
이 개미들은 소중한 성냥들을 끌고 다닙니다. 그리고 개미가 성냥에 도달하여 성냥을 가지고 돌아올 때까지 계속 "step" 명령을 실행해야 합니다.
고양이는 챌린지 96에서 소개되어 함수 "wait( )"와 함께 "until" 루프를 사용하는 방법을 보여줍니다. 고양이는 쥐를 발견하면 쥐를 공격합니다. 따라서 우리는 고양이가 잠들 때까지 기다렸다가 밖으로 나와 성냥을 수집해야 합니다.
챌린지 101에서 우리는 얼어붙은 바나나 주변의 얼음을 깨는 것을 도와줄 염소를 만납니다. 함수 "hit( )"은 염소에게 얼어붙은 바나나와 부딪히도록 명령하므로, 원숭이가 바나나를 잡을 수 있습니다. 하지만 얼지 않은 바나나에 이 함수를 사용하지 않도록 주의하십시오.
얼어붙은 바나나를 모으는 것은 쉽지 않습니다. 이 바나나를 모으려면 먼저 염소를 보내서 얼음을 깨뜨려야 합니다.
원숭이는 녹색 바나나를 좋아하지 않지만 염소는 좋아합니다!
염소가 녹색 바나나를 수집하도록 하여 염소를 만족시키십시오.
호랑이는 챌린지 120에서 만납니다. 호랑이는 원숭이를 보면 공격하므로, 우리는 호랑이가 잠들거나 놀이에 정신이 팔릴 때까지 기다린 다음에 이동하여 바나나를 수집해야 합니다.
곰은 챌린지 121에서 만납니다. 곰은 원숭이를 보면 공격하므로, 우리는 곰이 잠들거나 놀이에 정신이 팔릴 때까지 기다린 다음에 이동하여 바나나를 수집해야 합니다.
        원숭이를 위한 다리를 만들어주는 이 귀여운 펭귄들은 챌린지 141에서 만납니다.
  • (첫 번째 그림) 어떤 펭귄들을 아무것도 가지고 있지 않습니다.
  • (두 번째 그림) 어떤 펭귄은 안경을 쓰고 있고
  • (세 번째 그림) 어떤 펭귄은 나비넥타이를 하고 있습니다.
  • (네 번째 그림) 어떤 펭귄은 안경과 나비넥타이 둘 다 하고 있습니다.
모든 펭귄들이 움직여야 하는 것은 아니며, 챌린지마다 움직여야 하는 펭귄들이 결정됩니다. 어떤 챌린지에서는 안경과 나비넥타이 둘 다 가지고 있는 펭귄이 움직이고, 다른 챌린지에서는 안경 혹은 나비넥타이를 가지고 있는 펭귄이 움직이게 됩니다.

참조 카드

주의사항 : 이전에 배운 함수와 코드에 대한 설명을 보려면 챌린지 1-100을 다루는 이전 레슨 파일의 내용을 참조하십시오.

키워드설 명
    "grab()"와 "drop"은 인수가 없는 함수로서 파트 3에서 쥐가 성냥을 모으는 것을 돕기 위하여 사용됩니다. 인수 없는 함수는 몇 가지 액션을 수행하지만, 이를 위해 우리는 입력을 할 필요가 없습니다. grab 또는 drop 버튼을 누르면 각각 "grab()" 또는 "drop"이라는 단어가 코드에 입력될 것입니다.
이 것은 주석 (comment) 라인입니다. 이것은 파운드(해시) 기호, 즉 #으로 시작됨으로써 코드 안에 표시됩니다. 컴퓨터는 이 라인을 명령으로서 처리하지 않습니다. 대신 이 라인은 코드를 작성하거나 읽는 프로그래머들이 서로의 생각을 이해하기 위하여 사용됩니다.
    함수는 정해진 과제를 수행하는 명령어들의 세트입니다. 컴퓨터는 우리가 함수를 호출(call)할 때, 다시 말해 코드에서 함수를 사용할 때만 함수를 실행할 것입니다.
다음은 함수를 정의하는 방법에 대한 예입니다:
ex
goto = (t) ->
	turnTo t
    step distanceTo t
									
우리가 일단 함수를 정의하면 함수의 이름과 함께 새로운 버튼이 나타날 것입니다.
코드에서 함수를
ex
goto match
grab()
goto pile
drop()
									
function 버튼을 누르면 다음 텍스트가 코드에 입력될 것입니다.
주석 부분을 참고하십시오.
ex
function name i= (argument) ->
	#your code here (여기에 코드를 입력하세요.)
									
    "until" 루프는 지정된 조건이 충족될 때까지 계속 해서 실행되는 코드의 블록을 포함하고 있는 루프입니다. 이러한 조건을 루프 조건(loop condition)이라고 합니다.
컴퓨터는 코드 시작 부분에서 조건을 확인합니다. 확인 결과가 거짓(false) 인 경우, 루프는 계속 진행 될 것입니다.
확인 결과가 참(true)인 경우에만 루프는 멈출 것입니다.
until 버튼을 누르면 다음과 같은 텍스트가 코드에 입력될 것입니다. 주석 부분을 참고 하십시오:
ex
until condition
	#your code here
									
우리는 루프 조건과 함께 함수 "near"을 사용할 수 있습니다.
이 함수 "near"에 의해 반환되는 값은 "until 루프가 언제 실행을 멈출 것인지를 결정할 것입니다.
near 버튼을 누르면 "near"이라는 단어가 코드에 입력됩니다.
    파트 3에서 우리는 고양이라는 캐릭터와 만났습니다. 고양이는 쥐를 발견하면 공격합니다. 그러므로 우리는 고양이가 잠에 들 때까지 기다려야 합니다. "sleeping"은 우리가 루프 조건과 함께 사용할 수 있는 또 하나의 함수입니다. "wait()"는 인수 없는 함수입니다.
"sleeping" 함수를 사용하려면 우리는 다음과 같이 코드를 작성해야 합니다.
ex
until cat.sleeping()
	wait()
									
Goto 함수는 원숭이가 다른 객체를 향해 "turn To", 즉 방향을 돌리고 이 객체까지 "step, distance To", 즉 걸어서 이동하도록 만듭니다. 함수 "go to"를 사용하면 코드를 더 짧고 읽기 쉽게 만들 수 있습니다. 인수로서 화면상의 아무 객체를 사용하여 이 명령을 사용하여 보십시오.
예를 들면 banana ("​go to banana​"), bridge ("​go to bridge​") 등을 사용할 수 있습니다. go to 버튼을 누르면 코드 안에 "go to"라는 단어가 작성될 것입니다.
챌린지 101에서 우리는 얼어붙은 바나나 주변의 얼음을 깨는 것을 도와줄 염소를 만났습니다. 함수 "hit( )"은 원숭이가 바나나를 잡을 수 있도록 얼어붙은 바나나와 부딪히라고 염소에게 명령합니다. 하지만 얼지 않은 바나나에 이 명령을 사용하지 않도록 주의하십시오.
"hit( )"을 사용하려면 우리는 "goat. Hit( )"이라고 작성해야 합니다.
이 때 두 단어는 점(.)으로 구분되어야 합니다.
hit() 버튼을 누르면 코드 안에 "hit( )이라는 단어가 작성될 것입니다.
"frozen()"은 인수 없는 함수로서 "바나나가 얼어붙었는가?"라고 질문을 하는데 사용됩니다. 우리는 "banana.frozen( )"이라고 작성하여 이 함수를 사용합니다. 그리고 이 함수는 객체의 상태에 따라 yes 또는 no라는 값을 반환합니다.
if banana. frozen( )과 같이 if 문에 대한 조건으로서 "frozen( )"를 사용하여, 조건이 충족된 경우에만 과제를 수행하도록 컴퓨터에게 명령하여 보십시오!
Frozen() 버튼을 누르면 코드 안에 ".frozen( )"이라는 단어가 작성 될 것입니다.
"if"는 특정한 조건을 바탕으로 코드가 무엇을 할 것인지를 결정하도록 만들려고 할 때 사용됩니다. 우리가 코드를 작성할 때는 우리에게 상태가 알려져 있지 않습니다. 그리고 코드가 실행될 때 컴퓨터는 무엇을 할 것인지 결정할 것입니다. if 버튼을 누르면 코드 안에 다음과 같이 작성될 것입니다.
ex
if condition
	# Your code here
									
"green( )"은 인수 없는 함수로서 if 문의 조건으로서 사용될 수 있습니다. 이 함수는 "바나나가 녹색인가요?"라는 질문을 할 것입니다. 그리고 객체(바나나)의 상태에 따라서 yes 또는 no라는 값을 반환합니다. 우리는 "green( )" 함수를 다음과 같이 사용합니다.
ex
if banana.green()
									
green() 버튼을 누르면 코드 안에 ".frozen()"이라는 단어가 작성 될 것입니다.
if 문은 컴퓨터가 특정한 조건을 바탕으로 하여 무엇을 할 것인지 결정하는데 도움이 됩니다. 우리는 if-else 문을 사용하여, 조건이 참인 경우에 무엇을 할 것인지 ("if" 아래의 부분), 그리고 조건이 충족되지 않은 경우(다시 말해 거짓인 경우)에 무엇을 할 것인지 ("else" 아래의 부분) 컴퓨터에게 알려줍니다.
ex
if [condition]
	code to be executed if the condition is trueelse
	code to be executed if the condition is false
									
우리가 코드를 작성할 때 상태는 우리에게 알려지지 않을 수도 있지만, 우리는 두 가지 경우에 무엇을 해야 하는지를 모두 컴퓨터에게 알려주며, 컴퓨터는 코드가 실행되고 있을 때 무엇을 할 것인지 결정을 내릴 것입니다.
if-else 버튼을 누르면 코드 안에 다음 내용이 작성될 것입니다.
ex
if condition
	# Your code hereElse
	# And more here
									
챌린지 120에서 우리는 호랑이와 곰을 만납니다. 호랑이와 곰은 원숭이를 보면 공격을 하기 때문에, 우리는 호랑이와 곰이 잠들 때까지 기다려야 하며 그렇지 않은 경우 노느라 정신이 다른 곳에 팔린 상태여야 합니다. "playing()"은 루프 조건과 함께 사용할 수 있는 또 다른 함수입니다. "playing" 함수를 사용할 때 우리는 다음과 같이 코드를 작성해야 합니다.
ex
until tiger.playing()
	wait( )
									
playing() 버튼을 누르면 코드 안에. playing()이라는 단어가 작성될 것입니다.
and는 논리 연산자입니다. 이것은 논리 연산을 수행합니다. 우리는 두 가지 서로 다른 조건으로 이루어진 루프 조건을 만들기 위하여 until 루프와 함께 이 연산자를 사용합니다. 이러한 방식을 통해 우리는 두 조건이 모두 참이 될 때까지 컴퓨터가 기다리도록 만들 수 있습니다.
and 버튼을 누르면 코드 안에 "and"라는 단어가 작성될 것입니다.
or은 논리 연산자입니다. 이것은 논리 연산을 수행합니다. 우리는 두 가지 서로 다른 조건으로 이루어진 루프 조건을 만들기 위하여 until 루프와 함께 이 연산자를 사용합니다. 이러한 방식을 통해 우리는 두 조건 중 하나 이상이 참이 될 때까지 컴퓨터가 기다리도록 만들 수 있습니다.
or 버튼을 누르면 코드 안에 "or"이라는 단어가 작성될 것입니다.
챌린지 141에서 우리는 펭귄을 만납니다. 어떤 펭귄은 나비넥타이를 하고 있습니다. 어떤 펭귄은 원숭이를 위해 다리를 만들어줘야 합니다. 때로는 나비넥타이와 안경 둘 다 가진 펭귄들이, 때로는 나비넥타이 혹은 안경 둘 중에 하나만 가진 펭귄들이 그 일을 하기도 합니다.
"has BowTie"는 if 조건 절이나 루프에서 사용되는 함수입니다.
다음과 같이 코드를 작성합니다.:
ex
if penguin.hasBowTie( )
	penguin.step 10
									
hasBowTie 버튼을 누르면 코드 안에 "has Bow Tie( )" 이라는 단어가 작성될 것입니다.
챌린지 141에서 우리는 펭귄을 만납니다. 어떤 펭귄은 안경을 쓰고 있습니다. 어떤 펭귄은 원숭이를 위해 다리를 만들어줘야 합니다. 때로는 나비넥타이와 안경 둘 다 가진 펭귄들이, 때로는 나비넥타이 혹은 안경 둘 중에 하나만 가진 펭귄들이 그 일을 하기도 합니다. "has Glasses"는 if 조건 절이나 루프에서 사용되는 함수입니다.
다음과 같이 코드를 작성합니다.:
ex
if penguin.hasGlasses( )
	penguin.step 10
									
hasGlasses 버튼을 누르면 코드 안에 "has Glasses( )" 이라는 단어가 작성될 것입니다.

캐릭터 소개(9개월~12개월 심화과정)

캐릭터설 명
아무도 썩은 바나나를 좋아하지 않습니다. 나중에 후회할 수도 있으므로 썩은 바나나를 밟지 않도록 주의하십시오.
헬스존(healthZone)은 챌린지 145에서 처음 나옵니다. 이것은 스테이지 위의 한 공간으로서 원숭이가 이 위에 서 있으면 체력이 회복됩니다. 헬스 존에 서서 기다리면 원숭이의 체력을 100으로 되돌릴 수 있습니다.
고릴라는 우리가 이 모험을 시작한 먼 옛날에 우리의 바나나를 훔쳤습니다. 하지만 이제 고릴라는 다시 돌아왔으며 화가 난 상태입니다. 챌린지 143에서는 고릴라가 돌아와 우리에게 코코넛을 던집니다! 고릴라가 주변에 있고 체력이 너무 낮은 상태라면 헬스 존에서 체력을 충전해야 합니다.
    챌린지 13-1(비교를 주제로 하는 스킬 챌린지)에서 우리는 젖소와 저울을 만납니다. 젖소는 저울 위에 서 있으며 저울은 젖소의 체중을 보여줍니다. 젖소와 저울은 논리 게이트를 열기 위해 사용됩니다. 젖소의 체중이 증가하려면 젖소는 먹어야 합니다.
챌린지 13-1(비교를 주제로 하는 스킬 챌린지)에서 우리는 논리 게이트를 접하게 됩니다. 이 게이트는 닫혀 있으므로, 원숭이는 바나나를 잡을 수 없습니다. 따라서 우리는 게이트를 열어야 합니다. 게이트의 조건이 충족된 경우에만 게이트가 열립니다.
예를 들어 게이트의 조건이 "==10"이라면, 젖소의 체중이 10이라고 저울이 알려줄 때만 게이트가 열릴 것입니다.
또한 < 또는 > 연산자도 사용할 수 있습니다. 게이트의 조건이 "> 15"라면 젖소의 체중이 15 보다 큰 숫자일 때만 (16 이상일 때) 게이트가 열립니다.
챌린지 160에서 우리는 까마귀와 만납니다. 까마귀들은 높은 곳에 앉아서 우리를 지켜보고 있습니다. 그리고 우리가 조심하지 않는다면 까마귀는 우리를 공격할 것입니다. 까마귀를 통과하려면 우리는 까마귀를 놀라게 하여 쫓아버려야 합니다.
챌린지 177에서 우리는 게이트를 만납니다. 닫힌 게이트는 원숭이가 통과 할 수 없는 장애물이며 통과 하려면 먼저 게이트를 열어야 합니다.
원숭이가 게이트 근처에 오면 게이트의 패스워드가 나타납니다. 원숭이가 이 패스워드를 말하면 (즉 키보드에서 패스워드 글자를 누르면) 게이트를 엽니다.
챌린지 182에서 우리는 박쥐와 만납니다. 박쥐는 날아다니면서 바나나를 잡은 다음, 그것을 원숭이에게 가져올 수 있습니다. 우리는 마우스를 움직여 박쥐의 x와 y 좌표를 변경하여 박쥐를 조종합니다.
챌린지 196에서 우리는 하마와 만납니다. 하마는 원숭이가 지나가는 경로 서서 길을 가로막습니다. 하마를 움직이려면 먼저 원숭이는 코코넛을 grab()을 이용하여 잡아야 하며, 그 다음 하마를 클릭하여 하마를 향해 몸을 돌린 다음 코코넛을 toss( )를 이용하여 던져야 합니다. 이렇게 하면 하마는 도망가고 원숭이는 통과할 수 있습니다.
우리는 챌린지 143에서 이미 고릴라와 만났으며, 여기에서 고리라는 우리에게 코코넛을 던졌습니다. 이제 챌린지 200에서 우리는 고릴라의 체력이 0이 될 때까지 고릴라에게 코코넛을 던져야 합니다. 고릴라의 체력은 챌린지 위쪽에 위치한 바의 왼쪽 부분에서 확인할 수 있습니다.

참조 카드

주의사항 : 이전에 배운 함수와 코드에 대한 설명을 보려면 챌린지 1-100을 다루는 이전 레슨 파일의 내용을 참조하십시오

키워드설 명
not은 논리 연산자입니다. "not" 연산자를 사용할 때 우리는 기본적으로 yes 또는 no를 반대로 바꿉니다. 다시 말해 not은 yes를 no로, no를 yes로 바꿉니다. 우리는 "not" 연산자를 사용하여 바나나가 썩지 않았으면 바나나로 이동하라고 원숭이에게 명령할 수 있습니다. 이 명령은 다음 코드와 비슷합니다.
ex
if not banana.rotten()
	goto banana
									
not 버튼을 누르면 코드 안에 "not"이라는 단어가 작성될 것입니다.
어떤 바나나는 노란색이며 맛이 있습니다. 하지만 다른 바나나들은 썩어 있으며 전혀 먹고 싶지 않습니다. Rotten( )은 인수 없는 함수로서 바나나가 썩어 있으면 yes라는 대답을 반환하며 그렇지 않으면 no를 반환합니다. 이 함수는 if 문의 조건으로 사용될 수 있습니다. 또한 우리는 not과 함께 rotten( )을 사용하여, 썩지 않은 바나나로 이동하라고 원숭이에게 말할 수도 있습니다.
ex
if b not.rotten()
	goto b
									
rotten 버튼을 누르면 코드 안에 "rotten( )"이라는 단어가 작성될 것입니다.
    health()는 인수 없는 함수입니다. 이 함수는 원숭이가 고릴라와 싸움을 벌이는 챌린지 142부터 사용됩니다. 대개 코드몽키에서 우리는 모든 바나나를 모으지 못하는 경우에 챌린지를 완료하는데 실패하게 됩니다. 하지만 이 챌린지부터는 체력 수치가 0이 되는 경우에도 챌린지에 실패할 수 있습니다. health( ) 함수는 연산자 == (equals to) 및 health 버튼을 누르면 코드 안에 "health( )"이라는 단어가 작성될 것입니다.
동등 연산자(두 개의 등호로 이루어진 연산자)는 if 문 등에서 값을 서로 비교하는데 사용됩니다. 예를 들어: "if a == 3"은 "만일 a가 3과 같다면"이라고 해석됩니다.
코드몽키에서는 다음 코드와 같이 값을 비교합니다:
ex
if health() == 100
	goto banana
									
== 버튼을 누르면 코드 안에 "==" 기호가 추가될 것입니다.
Less than 부등호 연산자는 거리나 체력과 같은 수치들을 서로 비교하는데 사용되는 연산자입니다. 우리는 이 연산자를 사용하여 어느 health Zone이 더 가까운지를 컴퓨터가 계산하도록 명령함으로써 어느 health Zone으로 이동할 것인지를 컴퓨터가 결정하게 만들 수 있습니다.
ex
if d0 < d1
	goto healthZones[0]
else
	goto healthZones[1]
									
< 버튼 을 누르면 코드 안에 "<" 기호가 추가될 것입니다.
Eat( )는 인수 없는 함수입니다. 이 함수는 챌린지 13-1(비교를 주제로 다루는 스킬 챌린지)부터 사용됩니다. 이 함수는 젖소가 밥을 먹어서 젖소의 체중이 증가하도록 만듭니다. 이 함수는 오직 젖소에게만 사용할 수 있습니다.
ex
cow.eat( )
									
eat 버튼을 누르면 코드 안에 "eat( )"라는 단어가 작성될 것입니다.
weight( )는 인수 없는 함수입니다. 이 함수는 챌린지 13-1(비교를 주제로 다루는 스킬 챌린지)부터 사용됩니다. 이 함수는 젖소의 체중을 반환합니다.
이 함수는 오직 젖소에게만 사용할 수 있습니다.
ex
cow. weight()
									
weight 버튼을 누르면 코드 안에 "weight()"라는 단어가 작성될 것입니다.
greater than 부등호 연산자는 체중과 같은 수치를 비교하는데 사용되는 연산자입니다. 이 연산자는 챌린지 13-6(비교를 주제로 다루는 스킬 챌린지)에서 처음으로 사용됩니다. 우리는 이 연산자를 사용하여 소의 체중이 정해진 값보다 더 큰지 확인할 수 있습니다.
ex
until cow.weight( ) > 15
	cows.eat( )
									
> 버튼을 누르면 코드 안에 ">" 기호가 추가될 것입니다.
반환문(return statement)을 사용하면 함수를 호출한 코드로 되돌릴 반환 값(return value)을 지정할 수 있습니다.
ex
yummy = (x) ->
	return not x.rotten( )
									
함수 "yummy"는 "x가 안 썩었나요?" 라는 질문에 "예" 또는 "아니오"라는 값을 반환하도록 컴퓨터에 요청합니다.
return 버튼을 누르면 코드 안에 "return"이라는 단어가 작성 될 것입니다.
챌린지 160에서 우리는 까마귀와 만납니다. 까마귀들은 높은 곳에 앉아서 우리를 바라보고 있습니다. 그리고 우리가 주의하지 않으면 까마귀들은 공격할 것입니다. 까마귀를 통과하기 위하여 우리는 까마귀를 놀라게 해 쫓아내야 합니다. 우리는 함수 watching( )을 사용하여 까마귀들이 깜짝 놀라서 우리를 더 이상 감시하지 못하게 만들 수 있습니다.
ex
until not crow.watching( )
	say "Boo!"
goto banana
									
watching 버튼을 누르면 코드 안에 "watching( )"이라는 단어가 작성될 것입니다.
on Key 함수는 우리가 키보드의 키를 누를 때마다 호출됩니다.
이 함수의 인수는 키보드에서 우리가 누르는 키입니다.
onKey 버튼을 누르면 다음과 같은 onKey 함수 구문이 코드에 추가되며 이 코드에서 인수를 사용하는 방법에 대한 예로서 주석도 추가됩니다.
ex
onKey = (key) ->
	# Example:
	#if key == 'w'
	# step 1
									
마지막 두 라인의 주석을 제거한 다음 내 코드에서 사용할 수 있습니다.
on Mouse Move는 우리가 마우스를 움직일 때마다 호출됩니다. 이 함수의 인수는 마우스의 위치(즉 커서의 위치)입니다.
마우스의 위치는 x 좌표 (pos.x)와 y 좌표(pos.y)를 포함합니다. onMouseMove 버튼을 누르면 다음과 같은 onMouseMove 함수 구문이 코드에 추가되며, 이 코드에서 인수를 사용하는 방법에 대한 예로서 주석도 추가됩니다.
ex
onMouseMove = (pos) ->
	# Example:
	#turnTo pos
									
마지막 라인의 주석을 제거한 다음 내 코드에서 사용할 수 있습니다.
함수 setX와 setY는 인수를 기반으로 하여 각각 x 좌표와 y 좌표를 설정합니다. 인수는 새로운 x 좌표와 y 좌표입니다.
setXsetY 함수는 박쥐 캐릭터에 적용됩니다. 박쥐에 대하여 이 함수를 호출하려면 bat.setX와 bat.setY라는 코드를 작성해야 합니다.
setX와 setY 버튼을 누르면 내 코드에 각각 단어 "setX"와 "setY"가 작성될 것입니다.
"onClick"은 인수 없는 함수입니다. on Click 함수는 우리가 마우스를 클릭할 때 호출됩니다. 우리는 클릭하려는 캐릭터에 대하여 이 함수를 정의합니다.
예를 들어 원숭이와 악어를 클릭하려는 경우, 우리는 다음 두 개의 함수를 정의해야 합니다:
  • monkey.onClick
  • crocodile.onClick
on click 버튼을 누르면 내 코드에 다음과 같은 onClick 함수의 구문이 추가될 것입니다. 코드를 작성할 때는 주석 부분을 참고 하십시오.
ex
onClick = ( ) ->
	# Your code here
									
Onclick 정의할 때는 이 함수가 적용되는 캐릭터를 함수의 앞에 추가하고 둘 사이에 점을 찍어야 한다는 것에 주의하십시오. 그렇지 않으면 코드가 실행되지 않습니다.
"toss( )"는 인수 없는 함수로서 마지막 챕터에서 하마와 고릴라에게 코코넛을 던지기 위하여 사용됩니다.
toss 버튼을 누르면 코드 안에 toss( )라는 단어가 작성될 것입니다.
CONTENTS★FUSION★COMPLEX 미래교육을 본다