한눈에 보기
- 무엇: 변수(자료를 보관하는 상자)와 자료형, 배열·리스트, 참/거짓 스위치, 코드에서 대상(@s @p @a @r @e @c) 고르기
- 누구: 코드 작성기의 채팅명령어·반복 블록을 익힌 초등 고학년~중학생
- 결과물: 확률 블록 놓기, 구구단 문제, 토글 닭 소환, 랜덤 동물 낙하, 제비뽑기, 게임 모드 규칙 지키기
- 진행: 자료형 → 변수 활용 예제 → 배열 → 대상 고르기 순서. 예제는 반 수준에 맞춰 골라 씀
- 영상 일부는 예전 Code Connection 화면입니다. 지금은 코드 작성기(Code Builder)에서 같은 블록을 쓰며, 분류 이름·위치는 버전마다 조금 다를 수 있습니다.
변수와 자료형
| 자료형 | 예 | 알아 둘 점 |
| 정수 | 10, 블록·몹·아이템 | 블록·아이템 블록의 실제 값도 정수 |
| 참/거짓 | 참, 거짓 | 처음 값은 거짓 |
| 문자열 | "안녕" | 문자열 블록을 넣으면 문자로 |
| 좌표 | `~0 ~0 ~0` | 위치를 변수에 저장 |



같은 0, 다른 자료형: 숫자 0과 문자 0
- 자료형은 변수를 만들 때가 아니라 값을 저장할 때 넣는 블록으로 정해짐: 기본 칸의 0은 숫자, 문자열 분류의 문자 블록에 쓴 "0"은 문자
다음 채팅명령어를 입력하면: "1"
숫자 에 0 저장
문자 에 "0" 저장
반복(repeat): 문자 회 ← 숫자만 들어가는 칸에 문자 변수
- 실행하면 경고: “앗, 이 프로젝트를 실행할 수 없습니다. 작성한 프로그램 코드의 오류를 수정해주세요.” → 숫자 변수로 바꾸면 실행됨
- 채팅창에 말하게 하면 둘 다 0으로 똑같이 보임. 눈으로는 구분할 수 없음
- 논리 분류의 참(true)/거짓(false) 블록도 저장 블록에 들어가고, 만약(if) 조건 칸에도 넣을 수 있음



변수에 랜덤 수 넣고 조건으로 나누기
다음 채팅명령어를 입력하면: "1"
숫자 에 (1 부터 10 까지의 정수 랜덤값) 저장
만약(if) 숫자 = 1 이면(then) 실행
황금 블록 ~1 ~0 ~0 에 놓기
아니면서 만약(else if) 숫자 ≤ 5 이면(then) 실행
철 블록 ~1 ~0 ~0 에 놓기
아니면(else) 실행
잔디 블록 ~1 ~0 ~0 에 놓기
- 만약 블록의 ⊕를 눌러 ‘아니면’, ‘아니면서 만약’을 늘림
- 조건은 위에서부터 검사: 1 → 황금, 2
5 → 철, 610 → 잔디 - 여러 번 실행해 어떤 블록이 자주·드물게 나오는지 세어 보기(확률)


채팅 입력값을 변수로: 구구단 문제
다음 채팅명령어를 입력하면: "시작"
수1 에 (1 부터 9 까지의 정수 랜덤값) 저장
수2 에 (1 부터 9 까지의 정수 랜덤값) 저장
말하기 대상: 자기 자신(@s) 에게 (연결한 문자열: 수1 "곱하기" 수2)
다음 채팅명령어를 입력하면: "답" 입력값
만약(if) 수1 곱하기(×) 수2 = 입력값 이면(then) 실행
말하기 대상: 자기 자신(@s) 에게 "정답입니다."
다음 채팅명령어를 실행: "시작"
아니면(else) 실행
말하기 대상: 자기 자신(@s) 에게 "틀렸습니다."
다음 채팅명령어를 실행: "시작"
- 채팅명령어 블록의 ⊕ → 매개변수 ‘입력값’. 채팅창에
답뒤에 한 칸 띄우고 숫자를 입력하면 그 값이 저장됨 - 다음 채팅명령어를 실행(플레이어 분류): 이미 만든 채팅명령어를 코드에서 실행 → 다음 문제가 이어서 나옴


변수 활용: 위치 고정과 켜고 끄기
- 위치 고정하기: 실행 순간의 플레이어 위치를 ‘시작 위치’ 변수에 저장 / 그 위치에서 폭죽 50번 → 그동안 자유롭게 이동 가능
- 활용: 오래 걸리는 원·공 모양은 중심을 고정하면 편리
- 참/거짓으로 켜고 끄기: 무한반복: ‘작동중’이 참이면 닭 소환 / 철삽을 쓸 때마다 참 ↔ 거짓 바꾸고 채팅으로 알림 / 처음 값은 거짓 → 첫 사용에서 시작



토글 스위치: 채팅명령어 하나로 무한반복 켜고 끄기
다음 채팅명령어를 입력하면: "1"
만약(if) 시작 이면(then) 실행
시작 에 거짓(false) 저장
아니면(else) 실행
시작 에 참(true) 저장
무한반복 실행
만약(if) 시작 이면(then) 실행
소환 동물(닭) 를 위치 ~4 ~5 ~0
채팅창에 말하기: "닭 소환중..."
일시중지 500 (ms)
- ‘시작’은 참/거짓 변수. 조건 칸에 변수를 바로 넣으면 “시작이 지금 참인가?”를 묻는 뜻
1을 입력할 때마다 참 ↔ 거짓이 바뀜 → 스위치처럼 켜고 끄는 토글- 거짓일 때도 무한반복은 계속 돌지만 안쪽 명령은 실행되지 않음


배열 변수: 랜덤 동물 낙하 게임
다음 채팅명령어를 입력하면: "go"
게임 모드 변경: 서바이벌 를 대상: 모든 플레이어(@a) 에게 적용
동물 값 array of [동물 4가지] 저장
채팅창에 말하기: "동물이 떨어집니다. 얼마나 많은 동물이 살아남을까요?"
반복(repeat): 5 회
슬라임 블록 랜덤 위치 선택: ~-5 ~1 ~-5 ~ ~5 ~1 ~5 에 놓기
반복(repeat): 20 회
소환 (동물 배열 랜덤 선택(정수): 0 ~ 3 위치 값) 를 위치 랜덤 위치 선택: ~-5 ~50 ~-5 ~ ~5 ~50 ~5
- 배열: 변수 하나에 값 여러 개. 배열 블록(고급 → 배열)의 ⊕로 칸을 4개로 늘려 동물 4가지를 넣음
- 배열의 위치 번호는 0부터 → 4개면 0~3에서 랜덤 정수로 하나 고름
- 슬라임 블록 위에 떨어진 동물은 살아남음 → 어떤 동물이 살아남는지 관찰·예상하기


문자열 리스트: 중복 없는 제비뽑기
다음 채팅명령어를 입력하면: "5" ← 리스트 채우기
문자열 리스트 에 ["그리핀도르 1번", "그리핀도르 2번", … "후플푸프 3번"] 저장
다음 채팅명령어를 입력하면: "6" ← 하나 뽑기
메시지 보여주기 대상: 모든 플레이어(@a)
진한 글자: 문자열 리스트 get and remove value at (0 부터 (문자열 리스트 의 길이 빼기(-) 1) 까지의 정수 랜덤값)
일반 글자: "축하합니다!"
- 숫자는 ‘리스트’, 글자는 ‘문자열 리스트’(고급 → 배열). 모둠 4개 × 번호를 항목으로 넣음
- get and remove value at: 값을 꺼낸 뒤 리스트에서 지움 → 한 번 뽑힌 항목은 다시 나오지 않음(영상 당시 영어 블록)
- 끝값을 고정 숫자로 두면 안 됨: 뽑을수록 리스트가 줄어드니
길이 - 1 - 모둠·발표 순서 정하기에 바로 사용. 항목을 학생 번호나 활동 주제로 바꿔도 됨



코드에서 대상 고르기: @s @p @a @r @e @c
- 대상이 들어가는 블록의 ▼ 메뉴
- 코드를 실행하는 주체는 나(플레이어), 대상을 골라 적용
- @c: 내 에이전트. 에이전트 순간이동·추적 코드에서 자주 사용
- @e: 모든 엔티티 = 블록을 뺀 모든 것(몹·아이템·화살 등)
- 대상 없애기: 조건에 맞는 모든 대상을 없앰(한 마리만 고르지 않음) / 크리에이티브 모드 플레이어는 없앨 수 없음
- 선택자의 일반 설명은 PART 02 명령어에 있습니다. 여기서는 코드 블록의 대상 메뉴와 에이전트(@c) 중심으로 설명합니다.


대상을 정해 명령하기: 죽이기·효과·아이템 주기
- 죽이기: 대상 ▼에서 선택자를 고르거나, ‘모든 (몹)’ 블록을 넣어 특정 몹(예: 닭)을 한꺼번에 처치
- 다음 효과 부여하기: 효과 · 대상 · 지속 시간 · 배수(효과의 정도). 대상 자기 자신(@s), 지속 시간 10으로 신속·구속·성급함·점프 강화·멀미를 바꿔 보기
- 블록이나 아이템 주기: 대상 자기 자신(@s), 아이템 다이아몬드 검, 수량 3
- 몬스터 소환 실습: 밤 + 난이도 쉬움 이상(게임플레이 분류의 시간·난이도 블록). 크리에이티브 모드면 몬스터가 공격하지 못함
- 예전 Code Connection의 대상 메뉴는 @p @s @r @a @e 다섯 가지(@c는 지금 버전에서 에이전트 선택)




대상 지정하고 효과 주기: 반경 10칸의 몹만
- 철삽을 쓰면 주변 10칸 안의 모든 몹이 10초 동안 공중부양(세기 3)
- 만약 철삽을 사용하면: 아이템 사용 이벤트
- 몹 ← 모든 엔티티(@e): 플레이어 위치에서 반경 10칸
- 규칙 추가 family = mob: 엔티티 중 몹만 남기기
- 효과 부여: 공중부양 — 대상 몹, 시간 10, 배수 3

게임 모드로 대상 고르기: 규칙 지키기
무한반복 실행
메시지 보여주기 다음 모드에 있는 플레이어: 크리에이티브 진한 글자 "바꾸지마~"
게임 모드 변경: 서바이벌 를 (다음 모드에 있는 플레이어: 크리에이티브) 에게 적용
- 게임 모드: 서바이벌(야생) / 크리에이티브(모든 것 가능) / 모험(월드를 바꿀 수 없고 정해진 규칙대로)
- 다음 모드에 있는 플레이어: 특정 게임 모드인 플레이어만 대상으로 고르는 블록. 게임 모드 변경·메시지 보여주기의 대상 칸에 넣음
- 무한반복 안에 두면 누가 크리에이티브로 바꾸는 순간 서바이벌로 되돌아가고 안내 문구가 뜸
- 서바이벌·모험 게임 수업에서 몰래 모드를 바꾸는 학생 관리에 사용


수업 팁
- 변수가 들어간 코드가 실행되지 않으면 먼저 자료형을 확인(숫자 칸에 문자?). 문제 블록에 ⚠ 표시가 뜸
- 리스트·배열의 위치는 0부터: 4개면 0~3, 개수가 바뀌면 끝값은 ‘길이 - 1’
- 확률 예제는 10번 실행해 황금·철·잔디 개수를 표로 세어 보기(제안)
- 구구단 코드를 덧셈·뺄셈 문제로 바꿔 짝과 서로 풀어 보기(제안)
- 영상 속 채팅명령어 이름(1, 5, 6, go, 시작, 답)은 예시. 학생이 알아보기 쉬운 이름으로 바꿔도 됨