Vulcalien / unict-qd-sudoku

Sudoku application made for the 2023-2024 Quality Development course
GNU General Public License v3.0
2 stars 0 forks source link

Aggiungi altri test sul modulo Sudoku e correggi un errore #12

Closed Vulcalien closed 5 months ago

Vulcalien commented 5 months ago

Descrizione tecnica dell'errore

Oltre ai nuovi test, ho corretto un errore logico, dovuto alla poca eleganza di quel pezzo di codice. Questo codice:

for y in random.sample(range(self.size), k=self.size):
    for x in random.sample(range(self.size), k=self.size):
        if self.fixed[x][y]:
            break

doveva servire a trovare una cella (x, y) con stato 'fixed'. Ma quel break termina solo il ciclo interno, non quello esterno. Credo che questo causasse rallentamenti nella generazione della griglia, e forse una minore probabilità che una cella da rimuovere fosse trovata.

Ho rimpiazzato questo codice poco chiaro con una funzione: __find_fixed_cell.