본문 바로가기
[ CODING STUDY ]/》스크래치 공부

스크래치17장(변수, 난수)

by MRG 2020. 5. 25.
728x90
반응형

▣ 안녕하세요 ^^
저번장에 숙제는 다 해보셨나요?
직접 숙제 검사를 하면서 피드백을 드리고 싶지만
온라인이라 좀 아쉽네요 ^^
혹시 개인적으로 코딩에 관해서 
피드백이 필요하신 분은 댓글이나 메일 남겨주세요 ^^


▣ 그럼 오늘은 변수에 대해서 배워보겠습니다. 
먼저 변수란 무엇이라고 생각하시나요?
변하는 수?
네 반은 맞습니다 ^^
그림 하나 볼까요?

 

▣ 변수는 이렇게 상자를 의미합니다. 
데이터를 임의로 저장하는 공간
자료를 저장하는 상자, 바구니라고 이야기 할 수 있습니다.
데이터라는 건 우리가 게임을 할 때
플레이어 HP값, 점수 숫자, 이름 등등을
데이터라고 합니다.
그럼 변수는 이걸 저장해두는 곳이라고 생각하시면 될꺼같습니다. 


▣ 그럼 변수는 어떻게 만들까요?

 

 

▣ 변수메뉴에서 변수 만들기 버튼을 통해서 만들 수도 있고, 
블록을 통해서도 만들 수 있습니다.
방법은 같으니 변수만들기를 눌러보겠습니다.

 

▣ 그럼 이렇게 창이 나옵니다. 
먼저 새로운 변수 이름을 정하는 게 있죠?
변수에 이름을 왜 정할까요?

 

▣ 이렇게 우리가 100이라는 값을 변수 상자에 넣었다고 해보겠습니다.
그런 다음에 뚜껑을 닫으면 그 안에 무엇이 들어있는지 구분할 수 있나요?
네 없습니다.
그렇기 때문에 그 안에 무엇이 들어있는지 이름을 적어둔다고 생각하시면 될 거 같습니다.

▣ 자 그럼 이름 밑에 두가지를 선택하는 메뉴가 있죠?
모든 스프라이트 사용, 이 스프라이트에서만 사용이라는 선택하는 메뉴가 있습니다.
모든 스프라이트 사용은 전역변수라고 하고
이 스프라이트에서만 사용은 지역변수라고 생각하시면 됩니다.
쉽게 전역은 대한민국, 지역은 서울이라고 생각하시면 되는데,
모든 스프라이트 사용을 체크하고 만들면 
모든 스프라이트에서 사용할 수 있는 변수를 만든다 라고 생각하시면 되고
이 스프라이트에서만 사용은 지금 선택하고 있는 고양이 스프라이트에서만 
변수를 사용 할 수 있습니다. 

▣ 두가지 용도가 다릅니다. 
내가 전체적으로 관리 공유해야 하는 점수, 순위, 돈, 파워 등등을 사용할 때 전역 변수를 사용하고요.
지역변수는 플레이어 HP, 적 HP 등 딱 그 스프라이트에서만 사용할 때 지역변수를 사용합니다.
이건 예시이지 어떻게 사용하지는 정해져 있지 않습니다. 
그러니 사용법을 일단 익혀두시고 상황에 따라 사용해주세요.


▣ 우리는 모든 스프라이트에 사용을 선택하고 
점수라는 이름으로 변수를 만들어보겠습니다. 

 

▣ 그럼 이렇게 변수에 점수 목록이 추가된 걸 볼 수 있습니다. 
그럼 점수 변수를 수정하려면 어떻게 해야 할까요?

 

▣ 네 이렇게 정하기 블록을 가지고 오거나 바꾸기 블록을 가지고 와서 이렇게 점수 변수를 선택해서 
수정하시면 됩니다. 
이 안에서 직접 변수 이름도 바꿀 수 있고 
변수를 삭제할 수도 있습니다.

 

▣ 그럼 정하기 블록과 바꾸기 블록을 사용해 보겠습니다. 
정하기와 바꾸기 블록은 우리가 많이 사용해서 아시겠죠? ^^
정하기는 딱 그 숫자로 정해주시는 것을 의미하고,
바꾸기는 계속 그 숫자로 더해지거나 빼 지는 걸 의미합니다.
바꾸기만 해 보면 
점수 변수를 선택하고 이렇게 점수 변수에 값을 +10을 했습니다.


▣ 직접 정하기와 바꾸기를 사용해보세요.

 

▣ 변수 숨기기와 보이기 블록도 알아보겠습니다.
숨기기는 말 그대로 스프라이트에 화면에 있는 점수 창을 숨겨지게 하고
보이기는 보이게 합니다. 

 

 

▣ 직접 변수 보이기 숨기기를 블록에서가 아닌 변수 메뉴에서 직접 체크를 지워서 안 보이게 할 수도 있습니다. 


▣ 이것도 직접 한번 해보세요.


▣ 자 그럼 이제 변수를 한번 사용해야겠죠?

 

 

▣ 이렇게 변수 a, b, c를 만들어서 
a, b 각각 변수에 점수를 넣어주고 둘을 더한 값을
c에 넣어줘서 
c에 값을 말하는 코딩을 해보세요.
한번 해보고 밑에 코딩을 봐주세요.
연산은 연산 블록에 있습니다. 

 

▣ 자 이렇게 하면 되겠죠?
아주 간단합니다.
직접 더하기 빼기를 해보세요.

▣ 자 그럼 미션
깃발을 한번 누르면 2단부터 9단까지를 하나하나 말하는 코딩을 만들어보세요.
반복문을 이용하셔야 합니다. 
꼭 직접 해보세요.
힌트를 조금 드리면

 

▣ 분명히 몇몇 분들은 이렇게 코딩을 하셨을 겁니다.
그런데 이렇게만 하게 되면 9단까지 값이 바뀌지 않겠죠?
2x9을 하면서 b가 계속 1씩 늘어나야 하고요
9까지 끝난 다음에 3x1를 해야 하니  a와 b에 값이 초기화되어야 합니다.
이 점을 생각해 주시고,
알고리즘 순서도를 작성하고 코딩을 진행해주세요.
그럼 쉽게 만들 수 있을 겁니다. 
꼭 해보세요.


▣ 나 이번에는 난수를 사용해 볼까요?
연산 블록에 가면 1부터 10까지 난수라는 블록이 있습니다.

 

▣ 난수라는 건 임의의 수 랜덤을 의미합니다.
컴퓨터가 1부터 10까지 숫자 중에 하나를 골라서 반환합니다.
다시 돌려준다라는 이야기입니다.
이걸 어떻게 사용할까요?

 

▣ 이렇게 x y 이동하기에 난수 블록을 하나하나 넣어서 사용할 수 있습니다.
당연히 숫자를 넣을 수 있는 블록에는 다 넣을 수 있습니다.
예를 들어 크기도 가능하고요.
방향도 가능합니다.


▣ 자 이걸 더블클릭해서 실행해보면
x240 -240 y 180 -180 각각 끝부분까지 랜덤으로 이동하게 됩니다.
그런데 여기서 의문이 생깁니다. 

 

▣ 우리는 이미 랜덤 이동하기 블록을 배웠습니다.
그런데 왜 저 블록이 필요할까요?
네 맞습니다. 
랜덤 위치로 이동하기 블록은 내가 값을 지정해 줄 수 없고,
화면 전체 위치에서 랜덤으로 이동을 합니다.


▣ 하지만 난수를 사용하면
내가 원하는 위치에 랜덤 값으로 이동할 수 있습니다.
범위를 지정할 수 있다는 말입니다.
기억해주시고, 
꼭 직접 만들어보세요.

 

▣ 자 오늘도 알고리즘 순서도를 복습하겠습니다.
변수 부분이 숨겨지고 보이고는 입출력 부분으로 도형을 그려주시면 될꺼같습니다.
꼭 한번 복습하고 연습문제 진행해주세요.

 

 

 

 

▣ 자 오늘 연습문제입니다.
정말 고민을 많이 했습니다. ^^
영상을 보시고 우선 어떻게 작동하는지를 파악해주세요.
그리고 알고리즘 순서도를 설계하고 코딩을 진행해주세요.
변수 부분도 잊지 마시고요.

▣ 힌트를 드리면 우리가 벽에 닿으면 튕기기는 무슨 블록이었죠?
벽에 닿으면 튕기기요 라고 대답하신 분은 ^^
앞에 있는 동작 블록을 다시 공부하고 와주세요.^^

▣ 네 맞습니다. 
벽에 닿이면 반대 방향으로 바뀌는 조건문이 들어 있는 블록입니다.
방향이 바뀐다라는 말입니다.
그럼 점프대에 닿이면 튕겨지죠?
그건 어떻게 했을까요?
네 방향이 바뀌는 겁니다.
우리가 저번 시간에 배웠던 조건문을 활용하시면 됩니다. 
모르시는 분은 조건문을 다시 복습해주세요.

▣ 자 오늘은 이렇게 변수를 배웠습니다.
이제 점수까지 배웠으니 어느 정도 
게임다운 게임을 만들 수 있을 겁니다.
아직 다 배운건 아니지만 
연습문제와 제가 드린 숙제 꼭 해보시고,
창작 게임을 만들어보세요.
당연히 창작 게임도 알고리즘 순서도 설계하는 것부터 하는 거 잊지 마시고요.

▣ 모르시는 게 있거나 필요한 코딩이 있다면 댓글이나 이메일 주세요.
그럼 다음장에서 뵙겠습니다. 


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

728x90
반응형

댓글