Java - Sudoku

 
Vista:
Imágen de perfil de Novato
Val: 36
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Sudoku

Publicado por Novato (11 intervenciones) el 03/12/2019 22:26:08
Pues he creado dos matrices, una con los valores definidos, y otra con la solución. Mi idea es compararlas y que me diga si está completado.

Voy sustituyendo los valores de la matriz definida, para que sea igual a la compleja, en este caso solo tengo que rellenar la fila 8, la columna 2, para que sea más fácil de comprobar.

Pero me falla, a ver si me podeis echar una ayudita




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package Control;
 
import Vista.Consola;
 
public class Sudoku {
 
	private Consola consola;
	private final int Fila = 9;
	private final int Columna = 9;
	private int[][] miMatriz = new int[Fila][Columna];
 
 
 
	//Constructor
    public Sudoku() {
        consola = new Consola();
        fijarValores();
        mostrarMatriz();
        pedirDatos();
    }
 
    public void fijarValores() {
 
 
        miMatriz[0][0]=3;	miMatriz[1][2]=6;	miMatriz[1][4]=3;	miMatriz[0][6]=5;	miMatriz[2][8]=1;
        miMatriz[1][0]=4;	miMatriz[3][2]=2;	miMatriz[2][4]=7;	miMatriz[6][6]=2;	miMatriz[3][8]=4;
        miMatriz[6][0]=9;	miMatriz[6][2]=3;	miMatriz[5][4]=2;	miMatriz[8][6]=7;	miMatriz[8][8]=9;
        miMatriz[7][0]=6;	miMatriz[7][2]=7;	miMatriz[8][4]=4;	miMatriz[1][6]=9;	miMatriz[0][8]=6;
        miMatriz[2][0]=2;	miMatriz[0][2]=1;	miMatriz[0][4]=8;	miMatriz[2][6]=8;	miMatriz[1][8]=2;
        miMatriz[3][0]=7;	miMatriz[2][2]=5;	miMatriz[3][4]=9;	miMatriz[3][6]=1;	miMatriz[4][8]=7;
        miMatriz[4][0]=8;	miMatriz[4][2]=9;	miMatriz[4][4]=1;	miMatriz[4][6]=3;	miMatriz[5][8]=8;
        miMatriz[5][0]=5;	miMatriz[5][2]=4;	miMatriz[6][4]=6;	miMatriz[5][6]=6;	miMatriz[6][8]=5;
        miMatriz[8][0]=1;	miMatriz[8][2]=8;	miMatriz[7][4]=5;	miMatriz[7][6]=4;	miMatriz[7][8]=3;
 
 
        miMatriz[1][1]=8;	miMatriz[1][3]=1;	miMatriz[2][5]=6;	miMatriz[0][7]=4;
        miMatriz[3][1]=3;	miMatriz[5][3]=7;	miMatriz[3][5]=8;	miMatriz[2][7]=3;
        miMatriz[4][1]=6;	miMatriz[0][3]=2;	miMatriz[5][5]=3;	miMatriz[4][7]=2;
        miMatriz[5][1]=1;	miMatriz[2][3]=4;	miMatriz[8][5]=2;	miMatriz[6][7]=1;
        miMatriz[6][1]=4;	miMatriz[3][3]=6;	miMatriz[0][5]=9;	miMatriz[1][7]=7;
        miMatriz[7][7]=8;	miMatriz[4][3]=5;	miMatriz[1][5]=5;	miMatriz[3][7]=5;
        miMatriz[0][1]=7;	miMatriz[6][3]=8;	miMatriz[4][5]=4;	miMatriz[5][7]=9;
        miMatriz[2][1]=9;	miMatriz[7][3]=9;	miMatriz[6][5]=7;	miMatriz[8][7]=6;
        miMatriz[7][1]=2;	miMatriz[8][3]=3;	miMatriz[7][5]=1;
    }
 
    public void mostrarMatriz (){
 
        for(int i=0;i<miMatriz.length;i++) {
            for(int j=0;j<miMatriz[i].length;j++) {
                consola.EscribeEnLinea(miMatriz[i][j]);
                consola.EscribeEnLinea("\t");
            }
            consola.EscribeEnLinea("\n");
        }
    }
 
    public void pedirDatos() {
 
        int[][] Solucion={
                {3, 7, 1, 2, 8, 9, 5, 4, 6},
                {4, 8, 6, 1, 3, 5, 9, 7, 2},
                {2, 9, 5, 4, 7, 6, 8, 3, 1},
                {7, 3, 2, 6, 9, 8, 1, 5, 4},
                {8, 6, 9, 5, 1, 4, 3, 2, 7},
                {5, 1, 4, 7, 2, 3, 6, 9, 8},
                {9, 4, 3, 8, 6, 7, 2, 1, 5},
                {6, 2, 7, 9, 5, 1, 4, 8, 3},
                {1, 5, 8, 3, 4, 2, 7, 6, 9},
        };
 
        consola.Escribe("");
        consola.Escribe("BIENVENIDO AL JUEGO DE SUDOKU");
        int fila = Fila;
        int columna = Columna;
 
        do {
        fila = Integer.parseInt(consola.IntroduceCadena("Introduce fila: "));
        columna = Integer.parseInt(consola.IntroduceCadena("Introduce Columna: "));
        miMatriz[fila][columna]= consola.IntroduceNumero();
 
 
        for(int i=0;i<miMatriz.length;i++) {
            for(int j=0;j<miMatriz[i].length;j++) {
                consola.EscribeEnLinea(miMatriz[i][j]);
                consola.EscribeEnLinea("\t");
            }
            consola.EscribeEnLinea("\n");
        }
 
        }while(miMatriz==Solucion);
        consola.Escribe(" ");
        consola.Escribe("ENHORABUENA, HAS COMPLETADO EL SUDOKU");
    }
 
 
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de pablo
Val: 814
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Sudoku

Publicado por pablo (224 intervenciones) el 04/12/2019 14:32:28
Hola Novato, bueno lo que yo creo que ocurre es la manera en la que estas comparando las matrices, no compares las matrices de esa forma, mejor utiliza el método equals.

entonces en la sentencia de while:

1
while(Arrays.equals(miMatriz, Solucion));

Pruebalo para ver sí te ofrece la solución que estas buscando.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Novato
Val: 36
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Sudoku

Publicado por Novato (11 intervenciones) el 04/12/2019 15:50:39
Muchísimas gracias amigo! Me ha servido perfecto!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar