PopulateBlocks.go 1.1 KB

1234567891011121314151617181920212223242526
  1. package solver
  2. import (
  3. "time"
  4. )
  5. // Find all possible blocks that can be used to find a solution.
  6. func (solver *Solver) PopulateBlocks() {
  7. defer solver.timeTrack(time.Now(), "Done!")
  8. solver.Outp.Printf("Populating blocks... ")
  9. solver.findBlocks(&solver.Controller.Row1, &solver.row1s)
  10. solver.findBlocks(&solver.Controller.Row2, &solver.row2s)
  11. solver.findBlocks(&solver.Controller.Row3, &solver.row3s)
  12. solver.findBlocks(&solver.Controller.Row4, &solver.row4s)
  13. solver.findBlocks(&solver.Controller.Row5, &solver.row5s)
  14. solver.findBlocks(&solver.Controller.Row6, &solver.row6s)
  15. solver.findBlocks(&solver.Controller.Row7, &solver.row7s)
  16. solver.findBlocks(&solver.Controller.Row8, &solver.row8s)
  17. solver.findBlocks(&solver.Controller.Row9, &solver.row9s)
  18. // This calculates and stores the total number of solutions to validate.
  19. 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))
  20. }