27 lines
1.1 KiB
Go
27 lines
1.1 KiB
Go
package solver
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// Find all possible blocks that can be used to find a solution.
|
|
func (solver *Solver) PopulateBlocks() {
|
|
|
|
defer solver.timeTrack(time.Now(), "Done!")
|
|
solver.Outp.Printf("Populating blocks... ")
|
|
|
|
solver.findBlocks(&solver.Controller.Row1, &solver.row1s)
|
|
solver.findBlocks(&solver.Controller.Row2, &solver.row2s)
|
|
solver.findBlocks(&solver.Controller.Row3, &solver.row3s)
|
|
solver.findBlocks(&solver.Controller.Row4, &solver.row4s)
|
|
solver.findBlocks(&solver.Controller.Row5, &solver.row5s)
|
|
solver.findBlocks(&solver.Controller.Row6, &solver.row6s)
|
|
solver.findBlocks(&solver.Controller.Row7, &solver.row7s)
|
|
solver.findBlocks(&solver.Controller.Row8, &solver.row8s)
|
|
solver.findBlocks(&solver.Controller.Row9, &solver.row9s)
|
|
|
|
// This calculates and stores the total number of solutions to validate.
|
|
solver.Iter = uint64(len(solver.row1s)) * uint64(len(solver.row2s)) * uint64(len(solver.row3s)) * uint64(len(solver.row4s)) * uint64(len(solver.row5s)) * uint64(len(solver.row6s)) * uint64(len(solver.row7s)) * uint64(len(solver.row8s)) * uint64(len(solver.row9s))
|
|
|
|
}
|