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