Индекс 5 выходит за пределы длины 5

Я пытаюсь создать эту игру https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life, однако всякий раз, когда я пытаюсь использовать метод printBoard, я получаю следующую ошибку

Исключение в потоке «основной» java.lang.ArrayIndexOutOfBoundsException: индекс 5 выходит за пределы для длины 5.

Как я могу решить эту проблему? Спасибо

public class Board {
    final int[][] board;
    final int width;
    final int height;

    public Board(int width, int height) {
        this.width = width;
        this.height = height;
        this.board = new int[width][height];
    }

    public void printBoard() {
        System.out.println("---");
        for (int i = 0; i < height; i++) {
            String line = "|";
            for (int j = 0; j < width; j++) {
                if (this.board[i][j] == 0) {
                    line += ".";
                } else {
                    line += "*";
                }
            }
            line += "|";
            System.out.println(line);
        }
        System.out.println("---\n");
    }

    public int countAliveNeighbours(int x, int y) {
        int count = 0;
        count+=this.board[x-1][y-1];
        count+=this.board[x][y-1];
        count+=this.board[x+1][y-1];
        count+=this.board[x+1][y];
        count+=this.board[x+1][y+1];
        count+=this.board[x][y+1];
        count+=this.board[x-1][y+1];
        count+=this.board[x-1][y];

        return count;
    }

    public void setAlive(int x, int y) {
        this.board[x][y] = 1;
    }

   }

Основы программирования на Java
Основы программирования на Java
Java - это высокоуровневый объектно-ориентированный язык программирования, основанный на классах.
Концепции JavaScript, которые вы должны знать как JS программист!
Концепции JavaScript, которые вы должны знать как JS программист!
JavaScript (Js) - это язык программирования, объединяющий HTML и CSS с одной из основных технологий Всемирной паутины. Более 97% веб-сайтов используют...
1
0
32
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Инициализация платы

 this.board = new int[width][height];

Сделать это: -

 this.board = new int[height][width];

или измените цикл, в котором вы повторяете высоту с шириной.

Другие вопросы по теме