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)
🌱 seedlingon chat command "잔디" { fill with [] from pos (~0 ~0 ~0) to pos (~5 ~0 ~5) }
빨강+파랑 체크무늬
🌱 seedling🌿 herbon 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) } } } }
초록+갈색 세로 줄무늬
🌿 herbon 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🌳 treeon 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)
🌳 treeon 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 평면