Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nebra

Sudoku

Recommended Posts

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[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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se voce listar os métodos que precisa fica mais fácil.

Vamos tentando resolver aos poucos, por exemplo:

 

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

Voce chamou o construtor padrão, mas não tem o código dele e sim um com parametros.

 

public Sudoku(int número, int linha,int coluna) {
   this.número = número;
   this.linha = linha;
   this.coluna = coluna;
}

Pergunto: sempre será uma matriz 9x9? se sim faça isso no construtor padrão.

 

public Sudoku(int linha, int coluna) {
   this.linha = 9;
   this.coluna = 9;
}

Onde está definida a matriz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.