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.
Descrizione tecnica dell'errore
Oltre ai nuovi test, ho corretto un errore logico, dovuto alla poca eleganza di quel pezzo di codice. Questo codice:
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
.