Pseudocódigo/Diagramas de Flujo - seudocodigo del sudou

 
Vista:

seudocodigo del sudou

Publicado por paola (1 intervención) el 28/11/2008 02:48:20
lo necesito urente gracias
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 Alejandro

Resolución del Sudoku

Publicado por Alejandro (90 intervenciones) el 19/04/2024 23:55:24
Paola, aquí tienes un ejemplo de pseudocódigo para resolver el juego del Sudoku:

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
Función resolverSudoku(tablero):
    Si noHayCasillasVacias(tablero):
        Retornar verdadero  // El tablero está completo y resuelto
 
    fila, columna = encontrarCasillaVacia(tablero)  // Encontrar la primera casilla vacía
 
    Para num en 1 a 9:
        Si esNumeroValido(tablero, fila, columna, num):
            tablero[fila][columna] = num  // Asignar el número a la casilla vacía
 
            Si resolverSudoku(tablero):
                Retornar verdadero  // El tablero se resolvió correctamente
 
            tablero[fila][columna] = 0  // Deshacer la asignación si no se puede resolver
 
    Retornar falso  // No se pudo resolver el tablero
 
Función noHayCasillasVacias(tablero):
    Para fila en 0 a 8:
        Para columna en 0 a 8:
            Si tablero[fila][columna] == 0:
                Retornar falso  // Hay al menos una casilla vacía
 
    Retornar verdadero  // No hay casillas vacías
 
Función encontrarCasillaVacia(tablero):
    Para fila en 0 a 8:
        Para columna en 0 a 8:
            Si tablero[fila][columna] == 0:
                Retornar fila, columna  // Devolver la posición de la casilla vacía
 
    Retornar -1, -1  // No se encontró ninguna casilla vacía
 
Función esNumeroValido(tablero, fila, columna, num):
    // Verificar si el número ya está en la fila
    Para c en 0 a 8:
        Si tablero[fila][c] == num:
            Retornar falso
 
    // Verificar si el número ya está en la columna
    Para f en 0 a 8:
        Si tablero[f][columna] == num:
            Retornar falso
 
    // Verificar si el número ya está en el bloque 3x3
    inicioFila = fila - (fila % 3)
    inicioColumna = columna - (columna % 3)
 
    Para f en inicioFila a inicioFila + 2:
        Para c en inicioColumna a inicioColumna + 2:
            Si tablero[f][c] == num:
                Retornar falso
 
    Retornar verdadero  // El número es válido en esta posición

Este pseudocódigo representa una implementación recursiva para resolver un tablero de Sudoku. La función resolverSudoku utiliza las funciones auxiliares noHayCasillasVacias, encontrarCasillaVacia y esNumeroValido para encontrar la primera casilla vacía, asignar números válidos a esa casilla y continuar resolviendo el tablero hasta que esté completo y resuelto.
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