* 목차 *

2025년 9월 9일 화요일

마을 프로젝트 (여러 채의 집 이어 붙이기)

 

마을 프로젝트 (여러 채의 집 이어 붙이기)

집 하나만 있어도 멋지지만, 여러 채의 집이 모이면 마을이 됩니다.
이번에는 앞에서 만든 집 코드를 함수로 묶어서, 여러 위치에 반복해서 불러와 마을을 만들어 볼 거예요.


코드 예시 💻

// 플레이어 위치 불러오기

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" 블록(예: 물로 만든 분수)을 설치해 보세요.