Projeto sudoku-solver
Informações Sumarizadas
-
Linguagem: Python 3.7.0
-
Palavras Chave: Python, Inteligência Artificial, Algoritmos de Busca, Busca
em Largura, Busca em Profundidade, Busca A*, AC-3, Backtracking, Sudoku.
-
Link do Projeto: https://github.com/azzolinovarella/sudoku-solver
Explicação Geral do Projeto
Em suma, o objetivo deste projeto é resolver problemas 9x9 do jogo Sudoku. A partir da passagem do algoritmo de busca desejado (que pode ser BFS, DFS, A*, AC3 ou Backtracking) e de uma arquivo de texto contendo um problema por linha, representados por uma String com 81 caracteres (onde os 9 primeiros representam a primeira linha, os 9 seguintes a segunda, e assim por diante) ou a partir da passagem do problema via input (requisitado no terminal quando executado o módulo main), este programa busca encontrar a solução para cada problema, imprimindo ao final a String de solução bem como o problema formatado em um grid de Sudoku.
A String que representa o problema deve conter um ponto (".") nas casas onde o valor é desconhecido, conter exatamente 81 caracteres e possuir uma única solução possível. Desta forma, um exemplo válido de String seria:
Interpretada como:
.......2143.......6........2.15..........637...........68...4.....23........7....
Tendo como solução:
|. . .|. . .|. 2 1| |4 3 .|. . .|. . .| |6 . .|. . .|. . .| |-----+-----+-----| |2 . 1|5 . .|. . .| |. . .|. . 6|3 7 .| |. . .|. . .|. . .| |-----+-----+-----| |. 6 8|. . .|4 . .| |. . .|2 3 .|. . .| |. . .|. 7 .|. . .|
Que representada por uma String seria:
|8 5 7|3 4 9|6 2 1| |4 3 2|8 6 1|5 9 7| |6 1 9|7 5 2|8 4 3| |-----+-----+-----| |2 7 1|5 8 3|9 6 4| |9 4 5|1 2 6|3 7 8| |3 8 6|4 9 7|2 1 5| |-----+-----+-----| |7 6 8|9 1 5|4 3 2| |1 9 4|2 3 8|7 5 6| |5 2 3|6 7 4|1 8 9|
857349621432861597619752843271583964945126378386497215768915432194238756523674189
Instruções de execução podem ser encontradas no README do projeto:
https://github.com/azzolinovarella/sudoku-solver/blob/master/README.md