sudoku-funpark/solver/findBlocks.go

38 lines
746 B
Go

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
}