# problem with array error index out of bounds exception

• 01-31-2011, 08:08 PM
cn23271
problem with array error index out of bounds exception
Hello dear java users,

I have programmed this array and cannot find what makes the arrays out of bounds.

Any help will be appreciated.

class DivideyVenceras {

public char tablero[][];

int dimension;

public static void main(String[]args){

DivideyVenceras t = new DivideyVenceras();

int x=0;
int y=0;

t.trimino ( 0, 0, x, y, 4);
t.imprimeTablero(0, 0, 4);

}

public void trimino ( int x0, int y0, int x, int y, int dimension){

int dim = dimension/2,
x5,
y5,
x1=0,
y1=0,
x2=0,
y2=0,
x3=0,
y3=0,
x4=0,
y4=0;
dimension=2;

tablero = new char [dimension][dimension];

if ( dimension == 2 ) { /* tablero 2x2 */
/* encontrar y dibujar trimino */
if ( x0 == x && y0 == y ){
/* coordenadas de subtablero 1 */
tablero[x0][y0] = '#';
tablero[x0+1][y0] = caracter();
tablero[(x0)][y0+1] = caracter();
tablero[(x0+1)][(y0+1)] = caracter();

}

else
if(x0 == x && y0 != y){
/* coordenadas de subtablero 2 */
tablero[x0][y0] = caracter();
tablero[(x0)][y0+1] = '#';
tablero[x0+1][y0] = caracter();
tablero[(x0+1)][(y0+1)] = caracter();
}

else

if ( x0 != x && y0 == y ){
/* coordenadas de subtablero 3 */
tablero[x0][y0] = caracter();
tablero[x0][y0+1] = caracter();
tablero[(x0+1)][y0] = '#';
tablero[(x0+1)][(y0+1)] = caracter();
}
else{
/* coordenadas de subtablero 4 */
tablero[x0][y0] = caracter();
tablero[x0+1][y0] = caracter();
tablero[(x0)][y0+1] = caracter();
tablero[(x0+1)][(y0+1)] = '#'; }}

if ( dimension > 2){
/* tablero mayor que 2x2*/
/* encontrar y dibujar trimino*/

x5= x0 + dim;
y5= y0 + dim;

if ( x <5 && y < y5){
/* coordenadas de x e y en subtablero 1*/

x1=x;
y1=y;
x2=x5-1;
y2=y5;
x3=x5;
y3=y5-1;
x4=x5;
y4=y5;

tablero[x][y] = '#';
tablero[x2][y2] = caracter();
tablero[(x3)][y3] = caracter();
tablero[(x)][(y5)] = caracter();

}

else

if(x< x5 && y>=y5){
/* coordenadas de subtablero 2 */

x1 = x5-1;
y1 = y5 -1;
x2 = x;
y2 = y;
x3 = x5;
y3 = y5 -1;
x4=x5;
y4=y5;

tablero[x1][y1] = caracter();
tablero[(x)][y] = '#';
tablero[x3][y3] = caracter();
tablero[(x4)][(y5)] = caracter(); }

else

if ( x >= x5 && y < y5 ){
/* coordenadas de subtablero 3 */

x1= x5-1;
y1=y5-1;
x2=x5-1;
y2=y5;
x3=x;
y3=y;
x4=x5;
y4=y5;

tablero[x1][y1] = caracter();
tablero[x2][y2] = caracter();
tablero[(x)][y] = '#';
tablero[(x4)][(y5)] = caracter();
}

else {
/* coordenadas de subtablero 4 */

x1= x5-1;
y1=y5-1;
x2=x5-1;
y2=y5;
x3=x5;
y3=y5-1;
x4=x;
y4=y;

tablero[x1][y1] = caracter();
tablero[x2][y2] = caracter();
tablero[(x3)][y3] = caracter();
tablero[(x)][(y)] = '#'; }}}
• 01-31-2011, 08:15 PM
The code does not compile, you haven't used code tags, and you haven't provided a stack trace. No-one's going to help you if you just throw a bunch of broken code at us and ask us to fix it without doing your part.
• 01-31-2011, 08:37 PM
cn23271
Code tags
Well this is a forum for java beginners. My program seems to be ok in eclipse.
What do you mean with the code tags?
• 01-31-2011, 08:45 PM
Vase
[code]These are code tags.[/code]

Code:

```They   Make       Code         Readable```
• 01-31-2011, 09:20 PM
cn23271
program with code tags
class DivideyVenceras {

public char tablero[][];
/*this array is a board to detect triminos, triminos
triminos are 3 occupied units in board, say (x0, y0)=1,
(x0, y1)=1, (x1, y1)=1, and the unit left has the simbol
# as fix variable and would be in (x1, y0)=#
the reference variable are x, y for the location of symbol
reference #*/

int dimension;
/*shows dimension of the matrix*/

public static void main(String[]args){

DivideyVenceras t = new DivideyVenceras();

int x=0;
int y=0;

t.trimino ( 0, 0, x, y, 4);
/* calls method trimino with values x0=0, y0=0,
dimension =4, that means matrix is 4x4*/
t.imprimeTablero(0, 0, 4);
/* method for printing board*/

}

public void trimino ( int x0, int y0, int x, int y, int dimension)/* method for finding trimino, depending on the coordinates and
the dimension, the method fills the board with triminos*/

{

int dim = dimension/2,
x5,
y5,
x1=0,
y1=0,
x2=0,
y2=0,
x3=0,
y3=0,
x4=0,
y4=0;
dimension=2;
/* Starting with trivial case dimension of matrix 2 x2*/
tablero = new char [dimension][dimension];

if ( dimension == 2 ) { /* tablero 2x2 */
/* encontrar y dibujar trimino */
if ( x0 == x && y0 == y ){
/* coordinates of subboard above left subtablero 1 */
tablero[x0][y0] = '#';
tablero[x0+1][y0] = caracter();
tablero[(x0)][y0+1] = caracter();
tablero[(x0+1)][(y0+1)] = caracter();

}

else
if(x0 == x && y0 != y){
/* coordinates of subboard above right de subtablero 2 */ tablero[(x0)][y0+1] = '#';
tablero[x0+1][y0] = caracter();
tablero[(x0+1)][(y0+1)] = caracter();
}

else

if ( x0 != x && y0 == y ){
/* coordinates of subboard below left de subtablero 3 */
tablero[x0][y0] = caracter();
tablero[x0][y0+1] = caracter();
tablero[(x0+1)][y0] = '#';
tablero[(x0+1)][(y0+1)] = caracter();
}
else{
/* coordinates subboard below right subtablero 4 */
tablero[x0][y0] = caracter();
tablero[x0+1][y0] = caracter();
tablero[(x0)][y0+1] = caracter();
tablero[(x0+1)][(y0+1)] = '#'; }}

if ( dimension > 2){
/* matrix with dimension bigger than 2x 2 */
/* encontrar y dibujar trimino*/

x5= x0 + dim;
y5= y0 + dim;

if ( x <5 && y < y5){
/* coordenadas de x e y en subtablero 1*/

x1=x;
y1=y;
x2=x5-1;
y2=y5;
x3=x5;
y3=y5-1;
x4=x5;
y4=y5;

tablero[x][y] = '#';
tablero[x2][y2] = caracter();
tablero[(x3)][y3] = caracter();
tablero[(x)][(y5)] = caracter();

}

else

if(x< x5 && y>=y5){
/* coordenadas de subtablero 2 */

x1 = x5-1;
y1 = y5 -1;
x2 = x;
y2 = y;
x3 = x5;
y3 = y5 -1;
x4=x5;
y4=y5;

tablero[x1][y1] = caracter();
tablero[(x)][y] = '#';
tablero[x3][y3] = caracter();
tablero[(x4)][(y5)] = caracter(); }

else

if ( x >= x5 && y < y5 ){
/* coordenadas de subtablero 3 */

x1= x5-1;
y1=y5-1;
x2=x5-1;
y2=y5;
x3=x;
y3=y;
x4=x5;
y4=y5;

tablero[x1][y1] = caracter();
tablero[x2][y2] = caracter();
tablero[(x)][y] = '#';
tablero[(x4)][(y5)] = caracter();
}

else {
/* coordenadas de subtablero 4 */

x1= x5-1;
y1=y5-1;
x2=x5-1;
y2=y5;
x3=x5;
y3=y5-1;
x4=x;
y4=y;

tablero[x1][y1] = caracter();
tablero[x2][y2] = caracter();
tablero[(x3)][y3] = caracter();
tablero[(x)][(y)] = '#'; }}}