Ajuda para trabalho!por favor vejam(alterado)

2 respostas
N

import java.util.Scanner;

/**

  • @author
  • Tempo de execução do trabalho por um docente (enunciado + resolução): 20m (15m codificação + 5m debug)
  • Tempo de execução esperado para um aluno (que tenha resolvido e compreendido os exercícios das aulas anteriores): ~2h

*/

public class problema2 {

public static void main(String[] args) {

// criação de matriz de 9x9 inteiros, todos inicializados com zero
Sudoku jogo = new Sudoku();

Scanner teclado = new Scanner(System.in);

	int número = 0;

	do {
//			pedido da linha ao utilizador (de A a I)

System.out.println(Introduza a linha (A-I) ?”);

char caracter_linha = teclado.nextLine().charAt(0);
//			pedido da coluna ao utilizador (de 1 a 9)

System.out.println(Introduza a coluna (1-9) ?”);

int coluna = teclado.nextInt();

teclado.nextLine();
//			pedido do número a introduzir na matriz (de 1 a 9)			

System.out.println(Qual o número a introduzir (1-9) ?”);

número = teclado.nextInt();

teclado.nextLine();
//			tradução da letra para um número de linha (inteiro)

int linha = (int)(caracter_linha - A);

//			tradução da coluna para indíce da coluna matriz

coluna;

// se o número for diferente de zero
if (número != 0) {

//				verificação dos dados introduzidos

if (!jogo.coordenadaVálida(linha, coluna) || !jogo.numeroVálido(número)){

//					Se não forem válidos emite mensagem de erro

System.out.println(Erro: Coordenada ou número inválidos);

//					… e passa à impressão da matriz sem fazer mais nada

} else {

//					procurar número na coluna

if (jogo.existeNaColuna(coluna, número)) {					

//						Se encontrar emite mensagem de erro 					

System.out.println(Erro: número repetido na coluna);

} else {

//						procurar número na linha

if (jogo.existeNaLinha(linha, número)) {

//							Se encontrar emite mensagem de erro

System.out.println(Erro: número repetido na linha);

} else {

//							Senão insere o número na matriz

jogo.escreve(linha, coluna, número);

}

}

}

}

// Mostrar a martiz
jogo.mostraNoEcrã();

//			repetir enquanto número diferente de zero

}while (número != 0);

}

}

este é o meu problema, eu tenhu de apenas criar a classe Sudoku e os seus Metodos

public class Sudoku {

private int número;

private int linha;

private int coluna;
public Sudoku(int número, int linha,int coluna) {

this.número = número;

this.linha = linha;

this.coluna = coluna;

}

public boolean coordenadaVálida(int linha, int coluna) {

if(this.linha>0 && this.linha <=9 && this.coluna>0 && this.coluna <= 9)

return true;

else

return false;

}
public boolean numeroVálido(int número) {

if(this.número>0 && this.número <=9)

return true;

else

return false;

}

public boolean existeNaColuna(int coluna, int número) {

for (int i=linha; i<9; i++) {

if (Sudoku[i][coluna] != número)
return true;
}

return false;

}

public boolean existeNaLinha(int linha, int número) {

for (int j=coluna; j<9; j++) {

if (jogo[linha][j] != número)
return true;
}

return false;

}

public void escreve(int linha, int coluna, int número) {
jogo[linha][coluna]=número;

}

public void mostraNoEcrã() {

for (linha = 0; linha <= jogo.length - 1; linha++) {

for (coluna = 0; coluna <= jogo[linha].length - 1; coluna++) {

System.out.print(jogo[linha][coluna] + " ");

}

System.out.println();

}

}

isto é o que tenho feito, mas obviamente está mal, por favor ajudem-me

2 Respostas

diego2005

Mas ajudar em que?? Qual a sua dúvida??

T+

davidpaniz

te ajudar a fazer o que?

Criado 11 de novembro de 2007
Ultima resposta 12 de nov. de 2007
Respostas 2
Participantes 3