교육/코딩교육

[엄마표 코딩 스크래치] 반복문과 조건문

GoodFortune 2018. 2. 5. 22:22
반응형

 

오늘은 스크래치에서 반복문과 조건문에 대해서 알아보겠습니다.

 

코딩의 가장 기본이 반복문과 조건문의 사용입니다.

 

반복문은 말 그대로 어떤 행동을 반복하는 것을 뜻합니다.

 

조건문은 어떤 조건이 되었는지 검사하는 것을 뜻합니다.

 

명령어에서 제어(Control) 항목에서 조건문과 반복문을 확인 할 수 있습니다.

 

반복문은 아래와 같이

"( ) 번 반복하기" "무한 반복하기" "(  ) 까지 반복하기"

 

조건문은 아래와 같이

"만약 (  ) 이라면" "만약 (   ) 이라면, 아니면"

 

사용됩니다.

 

 

명령어에 나와 있는 말 그대로의 의미라고 생각하면 됩니다.

10 번 반복하기라면

반복하기 안에 들어간 모든 명령어를 10번씩 반복하는 것입니다.

 

무한 반복하기는 해당 블럭 안에 들어간 모든 명령어가 무한 반복 되는 것입니다.

 

그리고 조건문도 마찬가지로 말 그대로의 의미입니다.

 

"만약 (   ) 이라면" 에서 해당 조건이 만족되면 아래 블럭의 명령들이 수행되고, "만약-아니면" 의 조건문이라면 조건문에 만족되면 만약에 해당한 명령어가, 그렇지 않다면 아니면 에 해당하는 명령어가 수행됩니다.

 

 

"(   ) 까지 반복하기" 는 조건문과 반복문의 조합이라고 볼 수 있는데요.

해당 조건이 될 때까지 반복하는 것입니다.

 

그럼 아래에서 예시로 좀더 쉽게 이해해보겠습니다.

 

 

 

 

 

 

 

 

 

지난번 포스팅에서는 기본으로 있는 스프라이트를 이동시키는 것을 해보았는데요.

 

이번에는 스프라이트 하나를 더 추가해서 두개의 오브젝트(Object)를 움직여보겠습니다.

 

스프라이트가 있는 창에서 "새로운 스프라이트" 옆에 파란색으로 아이콘이 변한 부분 보이시나요?

그 부분을 눌러서 저장소에서 스프라이트를 가져올 수 있습니다.

 

 

 

아래와 같이 스프라이트 저장소가 보이고

원하는 이미지를 선택하세요.

저는 축구공 하나를 넣을게요.

 

 

 

그럼 아래처럼 Sprite 1 옆에 Ball-Soccer 가 추가된 것을 보실 수 있습니다.

 

이제 각각의 오브젝트(Object) 에 코딩을 할건데요.

 

목표는 Sprite 1 이 키보드의 화살표 방향대로 움직이다가 Ball-Soccer 를 발로 차면 공이 날라가게 할거에요.

먼저 Ball-Soccer object에 코딩이 되지 않도록 Sprite1 을 선택해서 해당 화면에서 코딩 해주셔야해요.

 

Object 마다 코딩을 해야하기 때문에 헷갈리시면 안되요!

(Sprite 1과 Ball-Soccer를 번갈아 눌러보시면 코딩이 다르게 나와야합니다!)

 

 

 

 

어떻게 코딩해야 할지 감이 오시나요?

 

먼저 Sprite1 은 오른쪽 왼쪽 키보드 입력을 받아 오른쪽 왼쪽으로 이동을 하다가 공을 만나면 잠깐 멈추겠습니다.

 

아래와 같이 코딩하면 되겠죠?

 

오른쪽 왼쪽은 지난번 포스팅에서 움직이게 해보았지만 간단히 설명드릴게요.

 

오른쪽 화살표 키를 눌렀을 때 1만큼 움직이기를 10번 반복합니다.

반복문이 사용되네요!

 

1만큼 움직이기 10번 반복과, 10만큼 움직이기가 어떻게 다른지 아세요?

 

한번 바꿔서 해보시면 바로 이해가 되는데 1만큼 10번 반복하면 그만큼 부드럽게 움직입니다^^

10만큼 한번에 이동하면 움직인 거리는 같지만 한번에 움직인 거리가 길기때문에 그만큼 안부드럽겠죠

 

그리고 공을 만나면 잠깐 멈추겠다고 했잖아요^^

 

그래서 조건문을 하나 더 추가합니다.

만약 Ball-Soccer 에 닿았는가? 라면 2초 기다리기를 해줍니다.

명령어는 색깔에 맞는 항목에 가면 쉽게 찾을 수 있어요.

 

파란색은 동작(Motion), 하늘색은 감지(Sensing) 에 있겠죠?

 

어른들은 명령어를 보면 어느 항목에 있을지 감을 잡을 수 있는데 어린 친구들은 어려울 수 있어요.

처음엔 색깔로 찾아가도록 해주세요.

 

그리고 왼쪽 화살표는 지난번 포스팅과 똑같이 -1 만큼 10번 움직입니다.

 

 

다음은 Ball-Soccer 에 대한 코딩을 하겠습니다.

 

왼쪽 스프라이트에서 Ball-Soccer를 한번 눌러주세요.

Sprite1 에 대한 코딩은 없어지고 새로운 화면이 나옵니다.

 

Ball-Soccer 에 대한 목표입니다.

Ball은 가만히 있다가 Sprite 1을 만나면 뻥 차지면서 움직이면 됩니다.

 

 

저는 아래와 같이 코딩해보았어요.

 

"깃발을 클릭했을 때"는

특정한 이벤트로 시작하는 것이 아니라 스프라이트들이 있는 하얀 화면 위에 보시면 초록 깃발과 빨간 동그라미가 보이는데요.

깃발을 클릭하면 프로그래밍이 시작되고 빨간 동그라미를 누르면 멈추게 되어 있습니다.

 

깃발을 클릭하면 무한반복 상태가 되고 조건문에 만족되면 조건문 내의 블록들이 수행됩니다.

만약 "Sprite1 에 닿았는가?" 이라면, 즉 Sprite 과 닿으면 아래 명령어들이 수행됩니다.

x좌표 y좌표를 10만큼씩 이동하는것을 10번 수행, 그리고 x좌표 10만큼, y 좌표 -10 만큼 바꾸는것을 10번 수행합니다.

그럼 어떻게 움직일지 생각해보세요^^

 

 

 

이렇게 코딩이 완료된 후에 초록 깃발을 눌러주시고, 왼쪽 오른쪽 화살표 키를 사용해서 Sprite1 과 공이 만나게 해주세요~

공이 뻥 날라갈거에요!

 

 

도전해보고 싶은 과제는 공이 포물선을 그리면서 날아가면 더 실감날텐데... 라는 생각이 듭니다.

 

한번 도전해보세요!!

 

저도 한번 도전! 해보겠습니다.

 

 

혹시 안되는 부분이 있으면 댓글 주시면 아는 한에서 답변 해드릴게요.

반응형