I am trying to generate this 2D Array maze 10 by 10 with numbers 0-9 in each row for 10 rows, but I keep getting array out of bounds exception. I double checked my indexes and the loop format and everything looks standard.
public class MazeDemo { public static void main(String[] args) { Maze maze = new Maze(10, 10); maze.generate(); } } class Maze { int N, M; int[][] cell = new int[N][M]; public Maze(int N, int M) { this.N = N; this.M = M; } public void generate() { for (int i = 0; i < N; i++) { int counter = 0; for (int j = 0; i < M; j++) { cell[i][j] = counter; counter++; } } display(cell, 10, 10); } public static void display(int a[][], int N, int M) { for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { System.out.print(a[i][j]); } } } }
What is going on here? Why am I getting the out of bounds exception?
Advertisement
Answer
When you declare cell
, N
and M
are 0
. Change it to something like
int N, M; int[][] cell; public Maze(int N, int M) { this.N = N; this.M = M; this.cell = new int[N][M]; // <-- add this. }
And in generate
, this
for (int j = 0; i < M; j++) {
should be
for (int j = 0; j < M; j++) {