Analisador de Sudoku

Crie uma classe Sudoku que receba uma string como argumento. A string conterá os números de um tabuleiro de Sudoku normal de 9x9 da esquerda para a direita e de cima para baixo, com zeros preenchendo as células vazias.

Atributos

Uma instância da classe Sudoku terá um atributo:

  • board: uma lista que representa o tabuleiro, com sublistas para cada linha e os números como inteiros. A célula vazia é representada por 0.

Métodos

Uma instância da classe Sudoku terá três métodos:

  • get_row(n): retornará a linha na posição n.
  • get_col(n): retornará a coluna na posição n.
  • get_sqr([n, m]): retornará o quadrado na posição n se apenas um argumento for fornecido, e o quadrado ao qual pertence a célula na posição (n, m) se dois argumentos forem fornecidos.

Exemplo

Imagem 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]

Observações

  • Todas as posições são indexadas a partir de 0.
  • Todas as ordens são atribuídas da esquerda para a direita e de cima para baixo.