package solver // The actual function that finds the blocks matching the partial blocks. func (solver *Solver) findBlocks(row *string, rows *[]string) { // Declare selection var selection []string var currBlocks []string funcRow := *row for letter := range funcRow { if len(selection) == 0 { currBlocks = solver.Controller.Blocks } else { currBlocks = selection selection = nil } for _, block := range currBlocks { currRow := block if funcRow[letter] == currRow[letter] { foundRow := currRow selection = append(selection, foundRow) } if funcRow[letter] == '0' { foundRow := currRow selection = append(selection, foundRow) } } // End for-loop } // End for-loop *rows = selection }