Olá pessoal, preciso de ajuda com um código meu. Estou tentando gerar uma matriz 9x9 com todos os números preenchidos (aleatoriamente) de acordo com as regras do Sudoku. Porém o programa “se executa” infinitas vezes e não gera resultado! Aí está o código:
[code]import java.util.Random;
public class Projeto4 {
public static void main (String[]args) {
int[][] M = new int [10][10];
boolean[][] P = new boolean [10][10];
int numeroSorteado;
int cont = 0;
String saida = “”;
boolean permissao = true;
Random Sorteio = new Random();
                    //Atribui número somente à primeira linha e primeira coluna, sem repetição.
		for (int c = 1; c <= 9; c++) {
			numeroSorteado = Sorteio.nextInt(9) + 1;
			M[1][c] = numeroSorteado;
			
			for (int k = 1; k < c; k++) {
				if (M[1][c] == M[1][k]) {
					numeroSorteado = Sorteio.nextInt(9) + 1;
					M[1][c] = numeroSorteado;
					k = 0;
				}
			}
		}
		
                    //Erro está neste bloco de execuções:
		for (int i = 2; i <= 9; i++) {
			for (int j = 1; j <= 9; j++) {
				numeroSorteado = Sorteio.nextInt(9) + 1;
				M[i][j] = numeroSorteado;
				
				for (int t = 1; t < i; t++) {
					if (M[i][j] == M[t][j]) {
						numeroSorteado = Sorteio.nextInt(9) + 1;
						M[i][j] = numeroSorteado;
						t = 0;
					}
				}
			}
		}
		
		for (int m = 2; m <= 9; m++) {
			for (int n = 2; n <= 9; n++) {
					
				do {
					permissao = true;
					numeroSorteado = Sorteio.nextInt(9) + 1;
					M[m][n] = numeroSorteado;
					
				for (int f = 1; f < m; f++) {
					if (M[m][n] == M[m][f]) {
						permissao = false;
						break;
					}
				}
				
				for (int g = 1; g < n; g++) {
					if (M[m][n] == M[g][n]) {
						permissao = false;
						break;
					}
				}
				System.out.print(M[m][n]);
				} while (permissao != true);
			}
		}
		for (int h = 1; h <= 9; h++) {
			for (int x = 1; x <= 9; x++) {
				saida += (M[h][x] + "   ");
			}
			saida += ("\n");
		}
		System.out.print (saida);
}
}
[/code]
Obrigado por ajudarem!  
