Chamada para classe

Eu to fazendo um programa de sudoku. Ja coloquei os 81 JTextField e ja ta aceitando um caractere por JTextField.
O problema é que eu gostaria de fazer o sistema acessar uma classe para tratar a logica do programa, mas nao sei onde colocar …

meus JTextFields sao assim: a[1][1], a[1][2],… …, a[9][9]

a parte principal do sistema esta aqui …
. . .
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application’s GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
. . .

…eu sei que tenho que mandar meu array bidimensional como parametro, mas ONDE ???
por exemplo: se o usuario digita “3”, fica a[2][5]=“3”, mas como eu testo se a linha ja nao tem um 3 ??

Olá sirgus!

Pelo que entendi, você já fez o código que desenha a tela com os 81 JTextField’s (9 colunas e 9 linhas), você também já fez o código que pega tudo isso e joga num array bidimensional a[][].

Bem, respondendo a pergunta “como eu testo se a linha já não tem um 3?” eu acho que poderia ser algo como:

/* Recebe o índice da linha e coluna do array bidimensional e o valor que deve ser 
 * inserido nesta posição do array.
 * O algorítmo valida se já há este valor na linha e coluna ao qual o valor está sendo
 * inserido.
 */
static boolean jahTemValorNaLinhaOuColuna(short valor, short linha, short coluna) {
	
	for (int i = 0; i < a.length; i++) {
		//verifica se tem este valor no restante da linha
		if (i != coluna) {
			if (a[linha][i] == valor) {
				return true;
			}
		}
		//verifica se tem este valor no restante da coluna
		if (i != linha) {
			if (a[i][coluna] == valor) {
				return true;
			}
		}
	}

	return false;
}

Espero ter ajudado ;-).

Abraços!

[quote=suelengc]Olá sirgus!

Pelo que entendi, você já fez o código que desenha a tela com os 81 JTextField’s (9 colunas e 9 linhas), você também já fez o código que pega tudo isso e joga num array bidimensional a[][].

Bem, respondendo a pergunta “como eu testo se a linha já não tem um 3?” eu acho que poderia ser algo como:

/* Recebe o índice da linha e coluna do array bidimensional e o valor que deve ser 
 * inserido nesta posição do array.
 * O algorítmo valida se já há este valor na linha e coluna ao qual o valor está sendo
 * inserido.
 */
static boolean jahTemValorNaLinhaOuColuna(short valor, short linha, short coluna) {
	
	for (int i = 0; i < a.length; i++) {
		//verifica se tem este valor no restante da linha
		if (i != coluna) {
			if (a[linha][i] == valor) {
				return true;
			}
		}
		//verifica se tem este valor no restante da coluna
		if (i != linha) {
			if (a[i][coluna] == valor) {
				return true;
			}
		}
	}

	return false;
}

Espero ter ajudado ;-).

Abraços![/quote]

Só que existe mais uma variável no meio dessa situação:

Ele precisa verificar não só se o número se repete dentro da coluna e da linha, mas se aquele número se repete dentro daquela matriz 3x3.

Uma pergunta, para fins de curiosidade. Você pretende usar algum algoritmo para gerar os números aleatoreamente dentro das matrizes? Gosto muito desse jogo. rsrs

Valeu, suelengc e Soruji. O codigo de vcs respondeu a segunda duvida. Mesmo porque, em casa, eu criei uma outra classe e havia criado esses tres metodos que testam as regras do sudoku. beleza.
Mas o meu primeiro problemao ainda ficou. COMO e ONDE eu coloco as chamadas pro meu …

jahTemValorNaLinhaOuColuna ???

… foi por isso que eu postei o MAIN do meu projeto.

E para matar a sua curiosidade Soruji, eu poderia criar um algoritmo para gerar um desafio, mas no inicio vou colocar desafios ja existentes de revistas e jornais mesmo. Eu tenho um sistema para resolver desafios sudoku em vb6(ele resolve ate dificeis). O meu objetivo é fazer o jogo EM JAVA, por isso o meu post.
Valeu, ate mais …