한눈에 보기
- 무엇: 같은 일을 여러 번 시키는 반복, 코드를 묶어 불러 쓰는 함수
- 누구: 채팅명령어 블록을 써 본 초등 고학년~중학생
- 흐름: 닭 100마리 → 매개변수로 횟수 정하기 → 모래비(반복+랜덤) → index·조건 반복 → 채팅명령어와 함수 비교
- 결과물: 닭 비, 모래비, 동굴 찾기 코드, ‘명령실행끝’ 순서 실험
반복 첫걸음: 닭 100마리
on chat command "chicken"
100 번 반복
spawn animal (닭) at ~0 ~10 ~0
- 채팅에
chicken입력 → 내 머리 위 10칸에서 닭 100마리가 떨어짐 - 먼저 반복 없이 소환 블록만 넣어 1마리가 나오는지 확인 → 반복 블록(기본 4번)으로 감싸고 100으로 바꾸기
- 위치
~0 ~10 ~0은 나를 기준으로 한 상대 좌표라 내가 움직이면 닭이 떨어지는 곳도 따라옴 - 예전 버전(코드 커넥션 베타, 영문 블록) 화면. 한글 블록으로는 ‘다음 채팅명령어를 입력하면’ + ‘반복(repeat) ○회’


반복 ①: 매개변수로 횟수 정하기
- 채팅명령어 블록의 ⊕를 누르면 변수 num1이 자동으로 생김
- num1을 반복 횟수에 넣으면 실행할 때마다 횟수를 바꿀 수 있음
- 채팅창에 이렇게 입력:
4 10→ 채팅명령어 4 + num1 값 10 → 닭 10마리 소환 - 채팅 매개변수는 정수만 가능


반복 + 랜덤 위치: 모래비
- 일반 블록은 공중에 놓으면 그 자리에 고정되지만 모래는 놓으면 아래로 떨어짐 → 높은 곳에 놓기만 하면 비처럼 내림
- 채팅명령어 ‘모래비’ → 100회 반복 → 모래를 랜덤 위치에 놓기
- 랜덤 위치 범위:
~10 ~40 ~10~~-10 ~50 ~-10(나를 기준으로 x·z ±10칸, 40~50칸 위) - y를 높게 잡아야 위에서 떨어지는 비처럼 보임



모래비 ②: 랜덤수로 두 가지 모래 섞기
다음 채팅명령어를 입력하면: "모래비"
반복(repeat): 100 회
랜덤수 값 랜덤 선택(정수): 0 ~ 1 저장
만약(if) 랜덤수 = 1 이면(then) 실행
(흰 모래) 랜덤 위치 선택: ~10 ~40 ~10 ~ ~-10 ~50 ~-10 에 놓기
아니면(else) 실행
(빨간 모래) 랜덤 위치 선택: ~10 ~40 ~10 ~ ~-10 ~50 ~-10 에 놓기
- 변수 ‘랜덤수’는 어떤 모래를 떨어뜨릴지 정하는 역할만 함
- 빨간 모래를 더 자주: 범위를 1~3으로 바꾸면 1 → 흰 모래, 2·3 → 빨간 모래(1:2)
- 발문: “범위를 1~3으로 바꾸면 두 모래의 비율은?” → 예측하고 실행해 확인

반복 ②: index 반복과 조건 반복

1 index로 번개 줄 철삽을 쓰면 index가 0~10으로 커지며 11번 반복 → 앞으로 이어지는 번개

2 index로 기둥 쌓기 index가 원의 중심 높이 → 쌓여 기둥. 완성까지 움직이지 않기

3 조건을 만족할 때까지 발아래 물 블록을 찾을 때까지 1초마다 시간을 세어 말하기


- 정리: 정해진 횟수 → ‘○번 반복’, 값이 변하며 → ‘0부터 ○까지 index’, 조건 → ‘~인 동안 반복’
조건이 맞을 때까지 다시 부르기: 동굴 찾기
다음 채팅명령어를 입력하면: "1"
만약(if) 블록 탐지: (공기 블록) 위치 ~0 ~-10 ~0 이면(then) 실행
다음 좌표로 텔레포트: ~0 ~-10 ~0
아니면서 만약(else if) 블록 탐지: (공기 블록) 위치 ~0 ~-20 ~0 이면(then) 실행
다음 좌표로 텔레포트: ~0 ~-20 ~0
아니면(else) 실행
다음 채팅명령어를 실행: "1"
- 10칸 아래가 빈 공간(공기)이면 동굴로 보고 텔레포트, 없으면 채팅명령어 1이 자기 자신을 다시 실행 → 찾을 때까지 반복
- 실행하는 동안 걷거나 뛰어야 새 위치를 검사함. 20칸 아래 조건을 더하면 범위가 넓어짐
- 주의: 높은 동굴로 이동해 떨어질 수 있음


실험: 채팅명령어로 부를까, 함수로 부를까
다음 채팅명령어를 입력하면: "1"
다음 채팅명령어를 실행: "채팅명령어" ← 실험 2: 호출 함수실행
채팅창에 말하기: "명령실행끝"
다음 채팅명령어를 입력하면: "채팅명령어"
반복(repeat): 10 회 → 채팅창에 말하기: "채팅명령어실행중"
함수 함수실행
반복(repeat): 10 회 → 채팅창에 말하기: "함수실행중"
- 실험 1(채팅명령어로 부르기): ‘명령실행끝’이 먼저 나오고 ‘채팅명령어실행중’ 10번
- 실험 2(함수 호출): ‘함수실행중’ 10번이 다 나온 뒤 ‘명령실행끝’
- 발문: 실행 전에 채팅 순서를 먼저 예상해 적게 하기



채팅명령어 부르기와 함수: 비슷하지만 다르다
| 채팅명령어 부르기 | 함수 호출 | |
| 블록 | 플레이어 → 다음 채팅 명령어를 실행 | 고급 → 함수 → 함수 호출 |
| 하는 일 | 채팅창에 대신 입력해 주는 것 | 다른 코드 안에서만 불러 실행 |
| 순서 | 기다리지 않고 바로 다음 줄 실행 | 함수가 다 끝난 뒤 다음 줄 실행 |
| 그 밖에 | 친구도 채팅으로 같은 명령 실행 가능 | 매개변수 추가 가능 |
| 영상 실험(10번 반복 뒤 ‘명령 실행 끝’) | ① 명령 실행 끝 ② 실행 중 ×10 | ① 실행 중 ×10 ② 명령 실행 끝 |

교사용 메모 · 함수 매개변수 예: The Show Must Go On
- Hour of Code 2024 The Show Must Go On:
hoc.note(Note.LA)매개변수 1개 →hoc.armorstand_dance(ArmorStand.ONE, Dance.DOLPHIN_DISCO)2개 →hoc.set(Biome.JUNGLE, Time.NIGHT, Climate.RAIN)3개. - 값만 바꿔 같은 함수로 다른 결과를 만드는 경험(가이드는 자료 링크).
교사용 메모 · 채팅명령어와 함수 더 알기
- 두 블록 모두 다른 코드 안에서 불러 쓸 수 있지만 동작 순서가 다릅니다.
- ‘다음 채팅 명령어를 실행’은 채팅창에 그 명령어를 대신 써 주는 것뿐이라, 불러 놓고 끝날 때까지 기다리지 않고 바로 다음 줄로 넘어갑니다(영상: ‘명령 실행 끝’이 먼저 출력).
- ‘함수 호출’은 함수가 끝까지 실행된 뒤에 다음 줄로 넘어갑니다(영상: 10번 반복이 끝난 뒤 ‘명령 실행 끝’).
- 함수는 매개변수를 추가할 수 있다는 장점도 있습니다(채팅명령어 매개변수는 정수만).
- 함수는 채팅창에 입력해서 실행할 수 없고, 다른 코드 안에서 ‘함수 호출’ 블록으로만 실행됩니다.
교사용 메모 · 수업 팁
- 반복은 먼저 1번 실행해 결과를 확인한 뒤 횟수를 늘리게 하면 실수를 줄일 수 있습니다(닭 영상의 순서).
- 모래비는 한 가지 모래로 시작해 랜덤수와 만약 블록으로 넓혀 가는 순서로, 반복·변수·조건을 한 번에 연습합니다(제안).
- 동굴 찾기는 탐지할 블록을 물·용암 등으로 바꿔 찾고 싶은 장소로 이동하는 코드로 바꿔 보게 합니다(제안).