solver.go 1.2 KB

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