본문 바로가기
[ Block Coding ]/- 스크래치 공부

스크래치3장(X, Y 바꾸기, 정하기, 반복문)

by MRG 2020. 4. 22.
728x90
반응형
728x90

▣ 안녕하세요 ^^ 저번 시간에 연습문제를 풀어보셨나요?
꼭 알고리즘 순서도를 설계하시고 그걸 보고 코딩을 하셔야 합니다. 
다시 말씀드리지만 코딩은 블록을 외우는 게 목적이 아니라 컴퓨터한테 우리 생각을 정리해서 명령을 하는 것입니다.
그렇기 때문에 우리에 생각을 정리하는 방법도 익혀야 한다고 저는 생각합니다. 
그러니 꼭 제가 만든 영상을 보고 알고리즘순서도를 생각하고 작성한 후에 코딩을 해주세요.


▣ 자 그럼 오늘은 X, Y 좌표 움직이는 블록 두 가지를 배워보겠습니다.

움직이기 블록은 머라고 했죠?
네 저번시간에 꼼꼼하게 읽으셨던 분은 아실 거라 생각합니다.
코딩은 만든 코딩을 다시 읽는 것도 너무 중요합니다. 저번 시간에 한번 언급을 했죠?
그러니 꼭 꼼꼼하게 읽는 연습 하시면 좋을 거 같습니다.


움직이기 블록은 고양이가 보고 있는 방향에 따라 움직인다고 했습니다.

 

그래서 고양이 스프라이트 밑에 보면 이렇게 고양이에 현재 상태를 나타내는 메뉴가 있습니다.
여기서 방향에 보면 90이라고 되어 있죠? 
이걸 클릭하면 

 

이렇게 시계같은 모양이 나옵니다.
이게 바로 현재 고양이 스프라이트에 방향을 나타내는 겁니다.
그래서 10만큼 움직이기를 더블클릭하면 90에 방향으로 움직이게 되죠.
그럼 다시 방향을 다른 곳을 향해 바꿔두고 움직이기를 하게 되면 바뀌 방향으로 10만큼 움직이게 됩니다.
아시겠죠? 이점 꼭 기억해주세요.


▣ 그럼 방향에 상관없이 X, Y 좌표로 움직이려면 어떻게 해야 할까요?

동작에 들어가서 밑에 보면 이런 블록이 있습니다. 우선 X좌표부터 알아보겠습니다.
X 바꾸기와 X정하기를 각각 가지고 와서 마우스 더블클릭을 해보겠습니다. 어떻게 되나요?

 

▣ 네 맞습니다. 바꾸기는 현재 위치에서 +10이 됩니다. 방향에 상관없이요. 그럼 정하기는 무엇일까요?
X0 정하기를 하게 되면 딱 0 지점으로 가게 됩니다.


그럼 만약에 내가 현재 위치에서 뒤로 X100만큼 가고 싶다고 하면 무엇을 사용해야 할까요? 
네 맞습니다. 현재위치에서 뒤로 움직이고 싶은 거니깐 바꾸기를 사용해야겠죠?


그럼 딱 X30위치로 가고 싶다고 하면 어떤 걸 사용해야 할까요?
네 맞습니다. 정하기를 사용해야 합니다. 

 

▣ Y 바꾸기와 Y 정하기도 동일합니다. 꼭 꼭 한 번씩 더블클릭해서 결과를 확인해보세요. 
좌표에 대해 이해가 안 가면 저번장을 다시 꼼꼼하게 읽고 다시 해보시기 바랍니다.
그래서 제가 좌표에 대해서 첫 번째 장에서 진행한 것입니다. 너무 중요합니다.


▣ 그럼 여기서 문제 제가 만약에 x좌표 바꾸기를 활용해서 10번을 가고 싶습니다. 그럼 어떻게 해야 할까요?

 

이렇게 10개를 만들어주면 됩니다. 1 초기 다리 기를 왜 넣었는지 아시죠?
네 맞습니다. 프로그램에 속도는 너무 빠르기 때문에 10 만큼씩 움직이는 걸 보고 싶기 때문에 제가 각각 1 초기 다리 기를 넣었습니다.
그런데 너무 불편하죠? 이게 100개가 될 수도 있고 1000개가 될수도 있습니다. 그럼 어떻게 해야 할까요?
이런 반복적인 일을 시키게 할 수 있는 방법이 있습니다. 이건 바로 반복문을 활용하면 됩니다.


제어에 가면 10번 반복하기라는 블록이 있습니다.

 

그건 보시는 그대로 저 안에 들어있는 블록을 10번 반복해라 라는 블록입니다. 
그런데 여기서 저 화살표 표시는 무엇일까요? 

만약 이렇게 코딩을 했다고 가정해 봅시다.
그럼 어떻게 될까요?
우리가 배웠던 프로그램에 순차적 원리에 의해서 순서대로 작동할 겁니다.
1번이 작동하고 2번이 작동하고 3번이 작동합니다.
그런 다음에 다시 1번으로 돌아갑니다. 2번 하고 3번 하고 이렇게 10번을 반복하고 다음 블록이 있으면 다음으로 넘아가고 아니면 끝내겠죠? 이게 바로 반복문입니다. 
그래서 밑에 저 화살표 표시는 반복한다라는 의미로 보시면 될꺼같습니다. 
다른 반복 블록들이 있지만 오늘은 저 블록 한 가지만 공부해 보도록 하겠습니다.


그럼 여기서 미션 10번 X10만큼 가려면 어떻게 해야 할까요?

 

네 이렇게 하면 10번을 자연스럽게 움직이는 걸 보실 수 있습니다.


▣ 그럼 한 가지 더 X, Y를 동시에 움직이는 블록은 없을까라는 의문이 드셨을 겁니다. 위에 바꾸기와 정하기를 사용하시면서요. 결론은 네 있습니다.
두 가지 블록 정도 있지만 오늘은 한 가지만 살펴보겠습니다.

 

동작에 가면 이런 블록이 있습니다.
이건 X정하기 Y정하기를 합친 블록이라고 생각하시면 될꺼같습니다. 
값을 정해주고 마우스로 더블클릭을 하면 바로 내가 지정한 값에 위치로 정해집니다.
이 블록들에 차이에 대해서는 꼭 꼭 숙지해주셔야 게임을 만드시는데 도움이 될 겁니다. 


▣ 마지막으로 알고리즘 순서도를 다시 한번 살펴볼까요?

 

자 알고리즘 순서도를 저번 시간에 한번 작성하는 예를 보여드렸습니다.
시작을 단말 모양을 사용하고 처리 모양은 우리가 일반적으로 사용하는 블록은 처리 블록을 사용하고 흐름선은 알고리즘 순차가 어떻게 진행되는지를 연결해주는 역할로 만들었습니다.
오늘은 반복 모양까지 추가해서 알고리즘 순서도를 만들어보면 좋을 거 같습니다.


▣ 중요한 거 한 가지 저번에도 말씀드렸지만 알고리즘 순서도는 블록 이름을 적는 게 아닙니다. 저희에 생각을 저런 순서도 형식으로 작성하라는 말씀입니다. 그러니 블록 이름을 적지 마시고 밑에 있는 예처럼 알고리즘을 작성해주세요.

 

 

이런 식으로 말이죠. 아직 무한반복은 안 배웠지만, 우리는 몇 번 반복하기를 배웠습니다. 반복하는 부분을 넣어서 알고리즘 순서도를 꼭 설계해주세요.

 

▣ 제가 만든 연습문제 영상을 꼭 자세히 봐주세요.
동작이 이해가 안 된다면 몇 번이고 다시 보시고 생각한 다음에 알고리즘 순서도를 설계하고 그걸 보고 코딩을 진행해주세요. 오늘 배운 블록을 활용해서 말이죠.
코딩은 정답이 없기 때문에 저번 시간에 배운 블록도 사용하셔도 됩니다.
꼭 알고리즘 순서도를 설계하고 코딩을 진행해주세요. 블록 이름을 적는 게 아닙니다. 명심해주세요.


▣ 오늘은 X, Y 좌표를 움직이는 것과 반복 블록을 간단하게 배워보았습니다.
움직이기 블록이랑 조금 헷갈릴 수도 있지만 제가 강조한 부분을 꼭 꼼꼼하게 읽으셔서 블록에 원리를 꼭 숙지해주세요. 그래야 나중에 자신만에 게임을 생각해서 만들 수 있습니다.
꼭 연습문제 숙제해주세요.


그리고 제 블로그가 정답은 아닙니다. 꼭 다른 좋은 여러 자료들과 영상들을 보시면서 함께 공부하시면 더 깊은 사고력과 코딩을 하실 수 있을 거라 저는 생각합니다. 궁금하신 거나 질문 있으시면 댓글 남겨주세요. 

그럼 다음장에서 뵙겠습니다.



▣ 포기하지 마세요!! 저도 했습니다.!! 파이팅!!!

 

728x90
반응형

댓글