마을 프로젝트 (여러 채의 집 이어 붙이기)
집 하나만 있어도 멋지지만, 여러 채의 집이 모이면 마을이 됩니다.
이번에는 앞에서 만든 집 코드를 함수로 묶어서, 여러 위치에 반복해서 불러와 마을을 만들어 볼 거예요.
코드 예시 💻
// 플레이어 위치 불러오기
let player = world.getPlayers()[0];
let pos = player.location;
// 집 크기
let width = 7;
let height = 5;
let depth = 7;
// 집 만드는 함수
function buildHouse(baseX, baseY, baseZ, blockType) {
// 벽 만들기
for (let y = 0; y < height; y++) {
for (let x = 0; x < width; x++) {
for (let z = 0; z < depth; z++) {
if (x === 0 || x === width - 1 || z === 0 || z === depth - 1) {
let newPos = { x: baseX + x, y: baseY + y, z: baseZ + z };
world.setBlock(newPos, blockType);
}
}
}
}
// 지붕
for (let x = 0; x < width; x++) {
for (let z = 0; z < depth; z++) {
let roofPos = { x: baseX + x, y: baseY + height, z: baseZ + z };
world.setBlock(roofPos, "wood");
}
}
}
// 마을 만들기 (집 여러 채 반복)
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 2; j++) {
let offsetX = pos.x + (i * (width + 3));
let offsetZ = pos.z + (j * (depth + 3));
buildHouse(offsetX, pos.y, offsetZ, "stone");
}
}
무슨 뜻일까? 🤔
buildHouse(...) → 집 짓는 코드를 함수로 만들어서 필요할 때마다 호출해요.
for (let i, j) → 반복문 2개를 사용해, 집을 행렬처럼 배치해요.
offsetX, offsetZ → 집이 겹치지 않도록 가로·세로 간격을 주었어요.
결과: 돌(stone) 블록으로 된 집들이 규칙적으로 배열되어, 작은 마을이 완성돼요!
챗GPT에게 부탁하기 💬
나:
마인크래프트에서 자바스크립트로 여러 채의 집을 반복해서 배치해 작은 마을을 만드는 코드를 알려줘
챗GPT:
“이 코드를 실행하면 집 여러 채가 모여 작은 마을이 생겨요!”
실습 미션 🎯
집의 블록 종류를 "stone", "wood", "bricks"로 다양하게 바꿔 보세요.
집 간격을 +3 대신 +5로 바꿔 더 넓은 마을을 만들어 보세요.
마을 한가운데 "fountain" 블록(예: 물로 만든 분수)을 설치해 보세요.