Alguien me puede decir el error? porfavor

Staed
12 de Diciembre del 2005
import java.io.*;
public class bingo {

public static void main (String[]args)throws IOException{
BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in));

int jug=0,x=0,i=0,j=0,cart=0,valor=0;

boolean cierto = true;
boolean repetido=false;

while (cierto == true)
{
System.out.println("Indica cuantos jugadores hay: ");
jug = Integer.parseInt(teclado.readLine());
if ((jug>1)&&(jug<7))
{
System.out.println("OK esta bien, seran "+jug+" jugadores.");
cierto = false;
}
else
System.out.println("Mala, el nº de jugadores tiene que ser entre 2 i 6.");
}
int [] num_cartones = new int[jug];

System.out.println("\nEl jugador a de indicar quants cartrons vol, ha de saver que en aquesta versió del joc, ");
System.out.println("hemos imposat un maxim de 10 cartrons per jugador .\n");
for (x=1;x<jug+1;x++)
{
System.out.println("El Jugador "+x+", tiene que indicar cuantos cartones quiere: ");
num_cartones[x-1] = Integer.parseInt(teclado.readLine());

if ((num_cartones[x-1]<1)||(num_cartones[x-1]>10))
{
System.out.println("Mala, el nº de cartones tiene que ser entre 1 i 10.");
System.out.println(" Vuelve a indicar el numero de cartones");
x--;
}
else
{
cart+=num_cartones[x-1];
}
}
System.out.println ("Total de cartones a repartir: "+cart+"");

int[][][] Cartones = new int[cart][4][4];
inicializar_cartones(Cartones,cart);
for(j=0;j<cart;j++)
{
for (i=0;i<4;i++)
{
for (x=0;x<4;x++)
{
repetido=false;
while (repetido==false)
{
valor=aleatorio();
repetido = comprobar_repetido(Cartones,valor,j);
}
Cartones[j][i][x]=valor;
}
}
}
Dibujar_cartones(Cartones,num_cartones,cart,jug);

int [] sacar_num = new int [99];
for (j=0;j<99;j++)
{
sacar_num[j]=aleatorio();
for (i=0;i<=j;i++)
{
if (sacar_num[j]==sacar_num[i])
{
i=j;
j--;
}
}

}
mirar_cartones(Cartones,sacar_num,cart);
}

public static boolean comprobar_repetido(int Cartones[][][], int num,int total) throws IOException{
int b,c;
boolean repetido=true;

for (b=0;b<4;b++)
{
for (c=0;c<4;c++)
{
if (Cartones[total][b][c]==num)
{
repetido=false;
}
}
}
return(repetido);
}
public static int aleatorio()throws IOException {
int resul=0;
while (resul==0)
{
resul=Integer.parseInt(String.valueOf(Math.round(99.0*Math.random())));
}
return resul;
}



public static void Dibujar_cartones(int pintar[][][], int jugador[],int total, int numero_jug)throws IOException{
int j=0,i=0,x=0;
for(j=0;j<total;j++)
{
System.out.println("\n\nCarton "+j);
for (i=0;i<4;i++)
{
System.out.println("\n");
for (x=0;x<4;x++)
{
System.out.print(pintar[j][i][x]+" ");
}
}
}
}

public static void mirar_cartones (int Cartones[][][],int bombo[],int total)throws IOException{
int aux,a,b,c;
boolean [][][] concept = new boolean [total][4][4];
boolean lineaH = false;
boolean lineaV = false;
boolean Bingo = false;
boolean lineaD = false;
boolean bingos[]=new boolean[total];
boolean sort[]=new boolean[total];
inicializar_sort(sort,bingos,total);
for (a=0;a<99;a++)
{

aux=0;
if ((a>=3)&&(((lineaH==false)||(lineaV==false))||(lineaD==false)))
{
lineaH=linea(concept,sort,total);
lineaV=columna(concept,sort,total);
lineaD=diagonal(concept,sort,total);
Dibujar_linea(Cartones,sort,total);
}
if (a>=15)
{
Bingo=bingol(concept,bingos,total);
}
if (Bingo == true)
{
a=99;
aux=total;
b=4;
c=4;
Dibujar_bingo(Cartones,bingos,total);
}

while (total!=aux)
{
for (b=0;b<4;b++)
{
c=0;
while((bombo[a]==Cartones[aux][b][c])&&((c<4)))
{
concept[aux][b][c]=true;
c++;
}
}
aux++;
}
}


}
public static void inicializar_sort(boolean sort[],boolean bingos[],int total)throws IOException{
int a;

for (a=0;a<total;a++)
{
sort[a]=false;
bingos[a]=true;
}
}

public static boolean linea (boolean concept[][][],boolean sort[],int total)throws IOException{
int a,b;
boolean linea = false;
for (a=0;a<total;a++)
{
for (b=0;b<4;b++)
{
if(((concept[a][b][0]==true)&&(concept[a][b][1]==true))&&((concept[a][b][2]==true)&&(concept[a][b][3]==true)))
{
sort[a]=true;
linea=true;
}
}
}

return (linea);

}

public static boolean columna (boolean concept[][][],boolean sort[],int
total)throws IOException{
int a,b;
boolean linea = false;
for (a=0;a<total;a++)
{
for (b=0;b<4;b++)
{
if (((concept[a][0][b]==true)&&(concept[a][1][b]==true))&&((concept[a][2][b]==true)&&(concept[a][3][b]==true)))
{
sort[a]=true;
linea=true;
}
}
}

return (linea);
}

public static boolean diagonal (boolean concept[][][],boolean sort[],int total)throws IOException{

int a;
boolean linea = false;
for (a=0;a<total;a++)
{
if (((concept[a][0][0]==true)&&(concept[a][1][1]==true))&&((concept[a][2][2]==true)&&(concept[a][3][3]==true)))
{
sort[a]=true;
linea=true;
}
}
return (linea);
}
public static boolean bingol (boolean concept[][][],boolean bingos[],int total)throws IOException{
int a,b,c;
boolean Bingo=false;
for (a=0;a<total;a++)
{
for (b=0;b<4;b++)
{
for (c=0;c<4;c++)
{
if (concept[a][b][c]==false)
{
bingos[a]=false;
}
}
}
if (bingos[a]==true)
{
Bingo =true;
}
}
return(Bingo);

}
public static void Dibujar_bingo(int cartones[][][],boolean num[],int total)throws IOException{
int a,i,x;
for (a=0;a<total;a++)
{
if (num[a]==true)
{
System.out.println("BINGO !!! EN EL CARTON NUM"+num[a]);
for (i=0;i<4;i++)
{
System.out.println("\n");
for (x=0;x<4;x++)
{
System.out.print(cartones[a][i][x]+" ");
}
}
a++;
}
}
}
public static void inicializar_cartones(int Cartones[][][],int total)throws IOException{
int a;int b; int c;

for (a=0;a<total;a++)
{
for (b=0;b<4;b++)
{
for (c=0;c<4;c++)
{
Cartones[a][b][c]=0;
}
}
}
}


public static void Dibujar_linea (int cartones[][][],boolean sort[],int total)throws IOException{
int a,i,x;
for (a=0;a<total;a++)
{
if (sort[a]==true)
{
System.out.println("LINEA !!! EN EL CARTON NUM"+sort[a]);
for (i=0;i<4;i++)
{
System.out.println("\n");
for (x=0;x<4;x++)
{
System.out.print(cartones[a][i][x]+" ");
}
}
a++;
}
}
}
}