| 12345678910111213141516171819202122232425262728293031323334353637 |
- 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
- }
|