본문으로 건너뛰기
Day 3 · MakeCode

패턴 디자이너

코드로 체스판 만들기!

학습 목표

  • if/else(조건문)으로 상황에 따라 다른 블록 놓기
  • remainder(나머지)로 짝/홀 패턴 만들기
  • 이중 for문으로 바닥/벽 채우기
  • (x+z)%2 공식으로 체크무늬 만들기

핵심 개념

if/else = 갈림길

조건이 참이면 이것! 아니면 저것! 비 오면 우산, 안 오면 그냥 가기 = if/else!

나머지(%) = 패턴의 비밀

% = 나머지! 짝수면 0, 홀수면 1 0,1,0,1,0,1... → 줄무늬! (x+z)%2 → 체크무늬!

이중 for = 바닥!

for 1개 = 줄, for 2개 겹치기 = 바닥(면)! 바깥 for(x) = 몇 번째 줄? 안쪽 for(z) = 그 줄에서 몇 번째 칸?

데모 코드

데모

줄무늬 한 줄

on chat command "줄무늬" {
    for [i] from (0) to (9) {
        if (remainder of (i) / (2)) = (0) {
            place [WHITE WOOL] at pos (~i ~0 ~0)
        } else {
            place [BLACK WOOL] at pos (~i ~0 ~0)
        }
    }
}
JavaScript 참고 (🌳)
player.onChat("줄무늬", function () {
    for (let i = 0; i <= 9; i++) {
        if (i % 2 === 0) {
            blocks.place(WHITE_WOOL, pos(i, 0, 0));
        } else {
            blocks.place(BLACK_WOOL, pos(i, 0, 0));
        }
    }
});

💡 흰검흰검... 줄무늬!

데모

6x6 유리 바닥

on chat command "유리" {
    for [x] from (0) to (5) {
        for [z] from (0) to (5) {
            place [GLASS] at pos (~x ~0 ~z)
        }
    }
}
JavaScript 참고 (🌳)
player.onChat("유리", function () {
    for (let x = 0; x <= 5; x++) {
        for (let z = 0; z <= 5; z++) {
            blocks.place(GLASS, pos(x, 0, z));
        }
    }
});
데모

체크무늬 = 체스판!

on chat command "체스" {
    for [x] from (0) to (7) {
        for [z] from (0) to (7) {
            if (remainder of (x + z) / (2)) = (0) {
                place [WHITE CONCRETE] at pos (~x ~0 ~z)
            } else {
                place [BLACK CONCRETE] at pos (~x ~0 ~z)
            }
        }
    }
}
JavaScript 참고 (🌳)
player.onChat("체스", function () {
    for (let x = 0; x <= 7; x++) {
        for (let z = 0; z <= 7; z++) {
            if ((x + z) % 2 === 0) {
                blocks.place(WHITE_CONCRETE, pos(x, 0, z));
            } else {
                blocks.place(BLACK_CONCRETE, pos(x, 0, z));
            }
        }
    }
});

💡 비밀 공식: (x+z)%2 = 0 이면 흰색!

데모

세로 줄무늬 바닥

on chat command "세로줄" {
    for [x] from (0) to (7) {
        for [z] from (0) to (7) {
            if (remainder of (x) / (2)) = (0) {
                place [OAK PLANKS] at pos (~x ~0 ~z)
            } else {
                place [SPRUCE PLANKS] at pos (~x ~0 ~z)
            }
        }
    }
}
JavaScript 참고 (🌳)
player.onChat("세로줄", function () {
    for (let x = 0; x <= 7; x++) {
        for (let z = 0; z <= 7; z++) {
            if (x % 2 === 0) {
                blocks.place(OAK_PLANKS, pos(x, 0, z));
            } else {
                blocks.place(SPRUCE_PLANKS, pos(x, 0, z));
            }
        }
    }
});

💡 (x+z)%2 대신 x%2! x만 기준이면 세로 줄무늬!

데모

테두리만! (액자 패턴)

on chat command "테두리" {
    for [x] from (0) to (7) {
        for [z] from (0) to (7) {
            if (x)=(0) or (x)=(7) or (z)=(0) or (z)=(7) {
                place [GOLD BLOCK] at pos (~x ~0 ~z)
            } else {
                place [WHITE CONCRETE] at pos (~x ~0 ~z)
            }
        }
    }
}
JavaScript 참고 (🌳)
player.onChat("테두리", function () {
    for (let x = 0; x <= 7; x++) {
        for (let z = 0; z <= 7; z++) {
            if (x === 0 || x === 7 || z === 0 || z === 7) {
                blocks.place(GOLD_BLOCK, pos(x, 0, z));
            } else {
                blocks.place(WHITE_CONCRETE, pos(x, 0, z));
            }
        }
    }
});

실습

빈칸을 채우고 정답을 확인해보세요!

6x6 잔디 바닥 (fill)

🌱 seedling
on chat command "잔디" {
    fill with [] from pos (~0 ~0 ~0) to pos (~5 ~0 ~5)
}

빨강+파랑 체크무늬

🌱 seedling🌿 herb
on chat command "빨파체크" {
    for [x] from (0) to (7) {
        for [z] from (0) to (7) {
            if (remainder of (x + z) / (2)) = () {
                place [RED WOOL] at pos (~x ~0 ~z)
            } else {
                place [] at pos (~x ~0 ~z)
            }
        }
    }
}

초록+갈색 세로 줄무늬

🌿 herb
on chat command "숲바닥" {
    for [x] from (0) to (9) {
        for [z] from (0) to (9) {
            if (remainder of () / (2)) = (0) {
                place [GREEN WOOL] at pos (~x ~0 ~z)
            } else {
                place [BROWN WOOL] at pos (~x ~0 ~z)
            }
        }
    }
}

다이아 테두리 + 유리 안쪽

🌿 herb🌳 tree
on chat command "보석방" {
    for [x] from (0) to (5) {
        for [z] from (0) to (5) {
            if (x)=(0) or (x)=() or (z)=(0) or (z)=() {
                place [DIAMOND BLOCK] at pos (~x ~0 ~z)
            } else {
                place [GLASS] at pos (~x ~0 ~z)
            }
        }
    }
}

줄무늬 벽 (가로 10, 높이 4)

🌳 tree
on chat command "줄벽" {
    for [x] from (0) to (9) {
        for [y] from (0) to (3) {
            if (remainder of () / (2)) = (0) {
                place [WHITE WOOL] at pos (~x ~y ~0)
            } else {
                place [GRAY WOOL] at pos (~x ~y ~0)
            }
        }
    }
}

블록 이름 검색

명령어에 쓸 블록 이름을 검색하세요 (영어 또는 한국어)

돌/벽돌나무광물색상유리특수유틸
stone돌/벽돌
cobblestone조약돌돌/벽돌
stone_bricks돌벽돌돌/벽돌
brick_block벽돌돌/벽돌
sandstone사암돌/벽돌
obsidian흑요석돌/벽돌
bedrock기반암돌/벽돌
oak_planks참나무 판자나무
spruce_planks가문비나무 판자나무
birch_planks자작나무 판자나무
dark_oak_planks짙은 참나무 판자나무
oak_log참나무 통나무나무
oak_fence참나무 울타리나무
oak_stairs참나무 계단나무
gold_block금 블록광물
diamond_block다이아몬드 블록광물
iron_block철 블록광물
emerald_block에메랄드 블록광물
white_wool하얀 양털색상
red_wool빨간 양털색상
orange_wool주황 양털색상
yellow_wool노란 양털색상
green_wool초록 양털색상
blue_wool파란 양털색상
purple_wool보라 양털색상
black_wool검정 양털색상
brown_wool갈색 양털색상
gray_wool회색 양털색상
white_concrete하얀 콘크리트색상
red_concrete빨간 콘크리트색상
blue_concrete파란 콘크리트색상
green_concrete초록 콘크리트색상
black_concrete검정 콘크리트색상
glass유리유리
stained_glass색유리유리
glowstone발광석특수
torch횃불특수
lantern랜턴특수
sea_lantern바다 랜턴특수
water특수
lava용암특수
grass잔디 블록특수
sand모래특수
dirt특수
air공기특수
tntTNT특수
chest상자유틸
crafting_table제작대유틸
furnace화로유틸
bed침대유틸
rail레일유틸
golden_rail파워 레일유틸
command_block커맨드 블록유틸
chain_command_block체인 커맨드 블록유틸
repeating_command_block반복 커맨드 블록유틸

자유 도전

실습이 끝났으면 티어에 맞는 도전을 골라보세요!

A🌱

내 색 체크무늬

실습 2 코드에서 색만 변경! 드롭다운 2개만 바꾸면 끝!

B🌿

체스 경기장

8x8 체크무늬 바닥 + 금 테두리 합치기!

C🌿

축구장

초록 바닥 + 흰색 라인(테두리) + 중앙선!

D🌳

자유 패턴!

(x+z)%3으로 3색 반복, 동심원, 패턴 방 등 자유!

Day 3 핵심 정리

  • 🎯fill = 한 번에 넓은 바닥 깔기
  • 🎯if/else = 조건에 따라 다른 블록! (짝→흰, 홀→검)
  • 🎯나머지(%) = i%2→줄무늬, (x+z)%2→체크무늬
  • 🎯이중 for = 바닥! for(x)+for(z) = x-z 평면