JAVA/포스팅

자바 다차원 배열의 활용 게임 개발 예제

짜집퍼박사(짜박) 2023. 11. 4. 15:42

다차원 배열은 게임 개발에서 게임 보드, 레벨 맵, 캐릭터 위치, 아이템, 장애물 및 다른 게임 요소를 모델링하는 데 매우 유용합니다. 아래에서는 간단한 게임 개발 예제를 통해 다차원 배열의 활용을 자세히 설명하겠습니다.

이 예제에서는 2차원 배열을 사용하여 간단한 2D 미로 게임을 모델링합니다. 미로는 배열의 셀로 표시되며, 캐릭터는 미로 안에서 이동합니다.

 

public class MazeGame {
    public static void main(String[] args) {
        // 2D 미로 맵 초기화
        int[][] maze = {
            {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
            {1, 0, 1, 0, 0, 0, 0, 0, 0, 1},
            {1, 0, 1, 1, 1, 0, 1, 1, 0, 1},
            {1, 0, 0, 0, 1, 0, 0, 1, 0, 1},
            {1, 1, 1, 0, 0, 1, 0, 1, 0, 1},
            {1, 0, 1, 0, 1, 1, 0, 0, 0, 1},
            {1, 0, 1, 0, 0, 0, 0, 1, 1, 1},
            {1, 0, 0, 0, 1, 1, 1, 1, 0, 1},
            {1, 1, 1, 1, 1, 1, 1, 1, 0, 1},
            {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
        };

        // 캐릭터 시작 위치
        int startX = 1;
        int startY = 1;

        // 미로 게임 루프
        int x = startX;
        int y = startY;

        while (true) {
            // 현재 위치 표시
            maze[y][x] = 2; // 캐릭터 위치

            // 미로 출력
            for (int i = 0; i < maze.length; i++) {
                for (int j = 0; j < maze[i].length; j++) {
                    if (maze[i][j] == 1) {
                        System.out.print("# "); // 벽
                    } else if (maze[i][j] == 0) {
                        System.out.print("  "); // 공백 (통로)
                    } else if (maze[i][j] == 2) {
                        System.out.print("C "); // 캐릭터
                    }
                }
                System.out.println();
            }

            // 이동 로직 (미로 종료 조건은 여기서 제외)
            // 예: 사용자 입력을 받아 이동 로직을 구현

            // 이전 위치 초기화
            maze[y][x] = 0;

            // 캐릭터 위치 업데이트
            // 여기서는 간단하게 오른쪽으로만 이동하는 예제
            x++;

            // 잠시 멈춤 (게임 루프 속도 제어)
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

            // 화면 지우기 (게임 루프 속도 제어)
            System.out.print("\033[H\033[2J");
            System.out.flush();
        }
    }
}

위의 코드는 2차원 배열을 사용하여 미로 게임을 모델링하는 예제입니다. 미로 맵은 숫자로 표현되며, 벽(1), 통로(0), 캐릭터(2)로 구성됩니다. 캐릭터는 미로를 탐험하며 오른쪽으로 이동하게 됩니다.

게임 루프에서는 현재 위치를 업데이트하고 미로를 화면에 출력합니다. 캐릭터 이동 로직을 구현하면 미로 게임을 진행할 수 있습니다. 이 예제는 간단한 미로 게임을 모델링한 것이며, 게임 개발에서는 더 복잡한 로직과 다양한 게임 요소를 사용합니다.

 

With ChatGPT