private void generateInitialRooms() {
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < width; j++) {
                // create north walls
                rooms[i][j] = new Room(i, j);
                if (i == 0) {
                    rooms[i][j].north = new Wall(rooms[i][j]);
                } else {
                    rooms[i][j].north = new Wall(rooms[i - 1][j], rooms[i][j]);
                    walls.add(rooms[i][j].north);
                }
                if (i == height - 1) {
                    rooms[i][j].south = new Wall(rooms[i][j]);
                }
                if (j == 0) {
                    rooms[i][j].west = new Wall(rooms[i][j]);
                } else {
                    rooms[i][j].west = new Wall(rooms[i][j - 1], rooms[i][j]);
                    walls.add(rooms[i][j].west);
                }
                if (j == width - 1) {
                    rooms[i][j].east = new Wall(rooms[i][j]);
                }
                rooms[i][j].roomName = roomNumber++;// we will name the rooms
            }
        }
        // initalize entrance and exit
        rooms[0][0].west.isGone = true;// you can replace .west.isGone with .north.isGone
        // this is just saying the roomName for top left is 0 
        rooms[0][0].roomName = 0;
        // we will remove the south wall of the last room
        rooms[height - 1][width - 1].south.isGone = true;
        // this is just saying the roomName for bottom right is the last element in the mxn room matrix
        rooms[height - 1][width - 1].roomName = (height * width);
    }