Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/09/2012, 11:53
nelson12345
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 10 meses
Puntos: 2
Sudoku en java

hola amigos estoy tratando de hacer un random con una matriz de 1-9 de modo que en la fila no se repita ningun numero e igualmente en la columna.
Cuando hago el random solo con un arreglo me funciona bien pero cuando le incluyo el otro arreglo para que quede como matriz me sale un error. Dejo los dos codigos para entender mejor:

Este codigo funciona y me muestra una fila del 1 al 9 sin repetir numeros

Código:
public class sudoku1
{

public static void main (String[] args) 
{
int x[]=new int [10];
int i=1,j;
x[i]=(int)(Math.random()*10);
for(i=1;i<x.length;i++)
{
x[i]=(int)(Math.random()*10);
for(j=0;j<i;j++)
{
if(x[i]==x[j])
{
i--;
}
}
}

for(i=1;i<x.length;i++)
{
System.out.print(" "+x[i]);
}
}
}


este codigo muestra el siguiente error:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at sudoku1.main(sudoku1.java:10)

Código:
public class sudoku1
{

public static void main (String[] args) 
{
int x[][]=new int [10][10];
int i=1,j=1;
x[i][j]=(int)(Math.random()*10);
for(i=1;i<x.length;i++){
		for(j=1;j<x[i].length;j++){
			x[i][j]=(int)(Math.random()*10);
			
if(x[i][j]==x[i][j])
{
i--;
j--;
}
}
}

for(i=1;i<x.length;i++)
{
	for(j=1;j<x[i].length;j++){
System.out.print(" "+x[i][j]);
			}
		}
	}
}