스크래치 2.0 기초 – 동작, 형태, 펜 블록 컴퓨팅적 사고와 문제해결
About Scratch 프로그래밍을 시작한 초보자를 위해 만든 교육용 프로그래밍 언어 특징 2003년 MIT media lab.에서 개발을 시작한 이래로 현재 1.4와 2.0 버전이 주로 사용됨 특징 PC 화면 상에서 블록 결합 방식의 쉬운 조작 코드를 직관적으로 이해 결과물을 시각적으로 확인 가능 온/오프라인에서 제약 없이 사용 컴퓨팅적 사고를 익히기에 적합 http://scratch.mit.edu 만들기 메뉴 선택으로 자신의 프로젝트를 생성 오프라인 에디터 설치 후 사용할 수도 있다
Sprite (스프라이트) Stage (무대) Script (스크립트) 프로그램을 수행하는 배우와 같은 역할을 하는 객체 프로그램을 수행하는 배우와 같은 역할을 하는 객체 다양한 이미지로 표현됨 한 스프라이트는 여러 개의 모양(costume)을 가질 수 있음 동일한 스프라이트 이름은 여러 개 사용할 수 없음 Stage (무대) Script (스크립트) 스프라이트의 활동 배경 프로젝트당 한 개의 무대 한 개의 무대는 여러 개의 배경(backdrop)을 가질 수 있음 스프라이트나 배경이 수행할 명령 제공된 블록을 조합하여 구성
기본 속성 스프라이트 이름 모양중심 : x좌표, y좌표 방향 회전방식 보이기/숨기기 모양 이름/번호 크기 (%) 소리(효과음 등) 음량, 박자 사용자정의 변수/리스트 0도(360) -1도 -90도 (270) 90도 -179도 180도
모양 중심 이동과 회전의 중심축을 지정
스프라이트의 모양이나 크기 변경, 그래픽 효과 제어 블록의 유형` 설 명 스프라이트의 움직임, 위치 제어 스프라이트의 모양이나 크기 변경, 그래픽 효과 제어 스프라이트의 소리와 효과음 설정 스프라이트의 움직임에 따른 펜을 이용하여 무대에 적용 반복 및 조건 제어, 복제하기 수행 입출력 장치로 수신한 상태값 획득, 스프라이트의 충돌 관찰 변수와 리스트를 생성하고 관리 입출력 감지, 스프라이트간 방송하기 등 특정 상황에 대한 처리 산술, 관계, 논리 연산, 난수의 처리 기본 블록을 결합해서 특정한 기능을 지닌 새로운 블록 정의 동작 형태 소리 펜 제어 관찰 데이터 이벤트 연산 추가블록
리포터 블록(Reporter Blocks) 모자 블록(Hat Blocks) : 스크립트의 시작 스택 블록(Stack Blocks) : 순차적인 실행 리포터 블록(Reporter Blocks) : 데이터, 연산 C 블록(C Blocks) : 조건, 반복구문 불린 블록(Boolean Blocks) : 참/거짓을 반환 캡 블록(Cap Blocks) : 스크립트 실행의 종료
블록의 각 홈을 연결 연결가능한 블록일 경우에 흰색 테두리가 생김 흰색 타원(숫자)/사각형(숫자, 문자)은 직접 입력 블록 내 타원이나 사각형에 리포터 블록을 연결 블록 내 육각형 모양의 조건영역에 불린 블록 연결 드롭다운 메뉴가 있는 경우 메뉴에서 선택 리포터 블록을 연결하거나 흰색창인 경우 직접 입력 가능 색상 입력창은 스포이드 방식으로 지정
동작 카테고리 스프라이트 기본 속성 중 좌표, 방향에 직접적인 변화를 주는 동작 관련 블록들이 모여 있다 블록 설명 ( )만큼 움직이기 스프라이트가 현재 바라보고 있는 방향으로 ( )만큼 움직인다 ( )도 돌기 스프라이트의 방향을 현재의 방향에서 ( )만큼 더하거나 뺌 - 모양 중심이 회전축 역할을 한다 ( )도 방향 보기 스프라이트의 방향을 ( )의 값으로 직접 입력 x: ( ) y: ( )로 이동하기 스프라이트의 x, y 좌표를 각각 ( )의 위치로 이동 [ ]초 동안 x: ( ) y: ( )로 움직이기 스프라이트의 x, y 좌표를 각각 ( )의 위치로 [ ]의 시간에 걸쳐서 애니메이션 효과처럼 이동 좌표를 ( )만큼 바꾸기 현재의 좌표에서 ( )만큼 더한다 좌표를 ( )로 정하기 현재의 좌표값과 상관없이 ( )의 값을 직접 입력 벽에 닿으면 튕기기 스프라이트가 벽에 닿은 상태라면 방향을 180도 반전
움직이는 고양이
형태 카테고리 스프라이트의 기본 속성 중 모양, 크기, 색, 레이어에 변화를 주는 동작 관련 블록
예제) 산책하는 고양이 동작 설계 화면 속 고양이가 걸어가는 것처럼 이동한다 애니메이션 효과를 내기 위해 고양이가 가지고 있는 모양을 계속 변경해가며 이동 속도를 조절하기 위해 움직이는 거리를 정하고 동작마다 일정한 딜레이를 넣어준다 벽에 부딪히면 방향을 반대로 바꾸어서 계속 이동한다(무한 반복) 벽에 부딪히는 순간 ‘야옹’이라고 말을 하도록 만든다
펜 카테고리 블록 설명 펜으로 그린 모든 그림을 지우기 스프라이트와 같은 모양의 그림을 실행창에 남긴다 그리기의 시작(이후 스프라이트의 움직임에 따라 선을 그린다) 그리기의 끝 펜의 색깔을 스포이드 방식(마우스 포인터의 위치에 있는 색)으로 결정한다 펜의 색깔을 현재 색에서 10만큼 증가시킨다 펜의 색깔을 0으로 지정
30 60 90 130 165 펜은 모양중심에서 나온다 10만큼 이동하기 펜 내리기 10만큼 이동하기 주요 색 번호 도장찍기 30 60 90 130 165
정삼각형 그리기 스프라이트 연필을 움직여서 한 변의 길이가 200인 정삼각형을 그려보자 Pencil 모양 중심이 연필심에 있도록 변경
정삼각형 그리기
커지는 고양이
연산자 연산 카테고리에는 6개의 불린 블록과 11개의 리포터 블록이 있다(Scratch 2.0 기준) Boolean Blocks Reporter Blocks
산술 연산자 연산자 설명 예시 두 입력값에 대한 사칙 연산을 수행하고 그 결과를 돌려주는 리포터 블록 숫자를 직접 입력할 수 있고 다른 리포터 블록이 들어갈 수도 있다 두 입력값 사이의 수를 불규칙하게 선택하여 반환(양 끝값도 포함) 소수도 가능 반올림, 나머지 연산 () of () block – 제곱근, 삼각함수, log, exponential과 같은 특수 함수들을 지원
비교 연산자 & 논리 연산자 연산자 설명 예시 비교 연산자 두 값의 크고 작음, 같음을 비교하여 참/거짓을 보고 논리 연산자 AND – A와 B가 모두 참일 때 참 OR – A와 B중에 하나라도 참이면 참 NOT – A가 거짓이면 참
문자열 연산자 연산자 설명 예시 주어진 문자열의 글자수를 보고 주어진 문자열의 특정 위치에 있는 글자 하나를 보고 꼭 글자가 아닌 숫자, 특수 문자, 공백도 보고 가능 두 입력값을 서로 붙여서 하나의 문자열로 만들어 보고
입력 받기 사용자 입력을 받는 블록 사용자가 대답을 입력하는 부분
원하는 자릿수 알아내기 숫자를 하나 입력 받아서 100의 자릿수의 값을 말해주는 프로그램을 만들어 보자.