KarlHeitmann / algoritmo-genetico-resolucion-sudoku

algoritmo genetico para resolver sudokus
MIT License
0 stars 1 forks source link

duplicated code #1

Open joecabezas opened 7 years ago

joecabezas commented 7 years ago

https://github.com/KarlHeitmann/algoritmo-genetico-resolucion-sudoku/blob/a4fb58b9f2ce2c450d840d390d0c14f2c692bffe/poblacion.rb#L232

parece que estan duplicando codigo varias veces cuando esto podria ser un metodo mas

KarlHeitmann commented 7 years ago

Así es, esa parte del código es la que revisa que las casillas estén bien: La variable i indica la columna, y j indica la fila.

Primero hice la revisión de las restricciones de las columnas, y luego el de las cuadrículas. Por eso decidí aprovechar el loop de las columnas y meter ahí todo ese código repetido que permite verificar las sumas, productos y ausencia de elementos en las cuadrículas.

Estoy seguro que debe haber una forma más concisa de expresar las líneas 228 -> 270. Ya sea metiéndolas en un loop distinto, o encontrando una fórmula matemática que usando los contadores "i" e "y" permita saber en qué cuadrícula uno se encuentra.

joecabezas commented 7 years ago

me refiero a que hay una linea en especifico que se repite bastante que podrias facilmente encapsular

KarlHeitmann commented 7 years ago

Correcto, pero al menos yo no lo veo tan fácil de encapsular. No es llegar y sacar esa línea de afuera del if, porque la variable "valor_casilla" depende del valor de la variable "i" y "j". ¿Se te ocurre como sacarla? puedes enviar la propuesta en un pull request!

joecabezas commented 7 years ago

tu lo has dicho, pasa los indices i, j como parte del metodo encapsulador, y la matriz, lo que importa es el contenido, no los indices