스티브코딩

변수와 대상

자료형·랜덤·배열 변수와 토글, 대상 선택자로 몹·효과·게임 모드 다루기

개념2026-10-19 갱신

한눈에 보기

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

변수와 자료형

자료형 예 알아 둘 점
정수 10, 블록·몹·아이템 블록·아이템 블록의 실제 값도 정수
참/거짓 참, 거짓 처음 값은 거짓
문자열 "안녕" 문자열 블록을 넣으면 문자로
좌표 `~0 ~0 ~0` 위치를 변수에 저장
- 변수 = 자료를 보관하는 상자. 변수를 만들면 ‘저장’과 ‘증가’ 블록이 생김 - 변수를 만들면 기본은 숫자, 넣는 값에 따라 자료형이 정해짐 - 배열(목록)에는 같은 자료형만, 섞으면 오류 - 채팅명령어 매개변수는 정수만, 함수 매개변수는 여러 자료형 가능
숫자 변수와 문자 변수
숫자 변수와 문자 변수
몹(닭)을 변수에 저장해 말하기
몹(닭)을 변수에 저장해 말하기
결과: 이름이 아니라 정수 10
결과: 이름이 아니라 정수 10

같은 0, 다른 자료형: 숫자 0과 문자 0

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

변수에 랜덤 수 넣고 조건으로 나누기

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

채팅 입력값을 변수로: 구구단 문제

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

변수 활용: 위치 고정과 켜고 끄기

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

토글 스위치: 채팅명령어 하나로 무한반복 켜고 끄기

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

배열 변수: 랜덤 동물 낙하 게임

다음 채팅명령어를 입력하면: "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에서 랜덤 정수로 하나 고름
  • 슬라임 블록 위에 떨어진 동물은 살아남음 → 어떤 동물이 살아남는지 관찰·예상하기
① 랜덤 동물 낙하 완성 코드 (06:34)
① 랜덤 동물 낙하 완성 코드 (06:34)
② ‘go’ 입력 → 랜덤 위치에 놓인 슬라임 블록 (07:09)
② ‘go’ 입력 → 랜덤 위치에 놓인 슬라임 블록 (07:09)

문자열 리스트: 중복 없는 제비뽑기

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

코드에서 대상 고르기: @s @p @a @r @e @c

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

대상을 정해 명령하기: 죽이기·효과·아이템 주기

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

대상 지정하고 효과 주기: 반경 10칸의 몹만

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

게임 모드로 대상 고르기: 규칙 지키기

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

수업 팁

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

관련 영상

관련 공식 자료

함께 보기

출처

  • 유튜브 「코드작성기에서 자료형은 어떻게 결정할까? #코드작성기튜토리얼」(2022-02-22)