solver.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package solver
  2. import (
  3. "fmt"
  4. "sync"
  5. )
  6. func Run() {
  7. solver := Solver{}
  8. solver.row1 = "769104802"
  9. solver.row2 = "154800060"
  10. solver.row3 = "002700150"
  11. solver.row4 = "600900308"
  12. solver.row5 = "045328670"
  13. solver.row6 = "328670945"
  14. solver.row7 = "597410280"
  15. solver.row8 = "006283090"
  16. solver.row9 = "200590006"
  17. solver.wg = sync.WaitGroup{}
  18. solver.load_blocks()
  19. fmt.Println("Total blocks:", len(solver.blocks))
  20. // Find rows that fit with the entered rows
  21. solver.find_blocks(&solver.row1, &solver.row1s)
  22. solver.find_blocks(&solver.row2, &solver.row2s)
  23. solver.find_blocks(&solver.row3, &solver.row3s)
  24. solver.find_blocks(&solver.row4, &solver.row4s)
  25. solver.find_blocks(&solver.row5, &solver.row5s)
  26. solver.find_blocks(&solver.row6, &solver.row6s)
  27. solver.find_blocks(&solver.row7, &solver.row7s)
  28. solver.find_blocks(&solver.row8, &solver.row8s)
  29. solver.find_blocks(&solver.row9, &solver.row9s)
  30. solver.iter = len(solver.row1s) * len(solver.row2s) * len(solver.row3s) * len(solver.row4s) * len(solver.row5s) * len(solver.row6s) * len(solver.row7s) * len(solver.row8s) * len(solver.row9s)
  31. fmt.Println("Number of iterations:", solver.iter)
  32. solver.check_combinations()
  33. fmt.Println(solver.solutions)
  34. }