Analizador de Sudoku

Crea una clase Sudoku que reciba una cadena como argumento. La cadena contendrá los números de un tablero de Sudoku normal de 9x9 de izquierda a derecha y de arriba abajo, con ceros en las celdas vacías.

Atributos

Una instancia de la clase Sudoku tendrá un atributo:

  • board: una lista que representa el tablero, con sublistas para cada fila y los números como enteros. La celda vacía se representa con 0.

Métodos

Una instancia de la clase Sudoku tendrá tres métodos:

  • get_row(n): devolverá la fila en la posición n.
  • get_col(n): devolverá la columna en la posición n.
  • get_sqr([n, m]): devolverá el cuadrado en la posición n si se proporciona un solo argumento, y el cuadrado al que pertenece la celda en la posición (n, m) si se proporcionan dos argumentos.

Ejemplo

Imagen de Sudoku

game = Sudoku("417950030000000700060007000050009106800600000000003400900005000000430000200701580")

game.board ➞ [
  [4, 1, 7, 9, 5, 0, 0, 3, 0],
  [0, 0, 0, 0, 0, 0, 7, 0, 0],
  [0, 6, 0, 0, 0, 7, 0, 0, 0],
  [0, 5, 0, 0, 0, 9, 1, 0, 6],
  [8, 0, 0, 6, 0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0, 3, 4, 0, 0],
  [9, 0, 0, 0, 0, 5, 0, 0, 0],
  [0, 0, 0, 4, 3, 0, 0, 0, 0],
  [2, 0, 0, 7, 0, 1, 5, 8, 0]
]

game.get_row(0) ➞ [4, 1, 7, 9, 5, 0, 0, 3, 0]
game.get_col(8) ➞ [0, 0, 0, 6, 0, 0, 0, 0, 0]
game.get_sqr(1) ➞ [9, 5, 0, 0, 0, 0, 0, 0, 7]
game.get_sqr(1, 8) ➞ [0, 3, 0, 7, 0, 0, 0, 0, 0]
game.get_sqr(8, 3) ➞ [0, 0, 5, 4, 3, 0, 7, 0, 1]

Notas

  • Todas las posiciones tienen índices que comienzan en 0.
  • Todos los órdenes se asignan de izquierda a derecha y de arriba abajo.