22import time
33
44
5+ def example_8x8 ():
6+ """8x8 example from https://puzzlegenius.org/snake/"""
7+ puzzle = SnakePuzzle (
8+ row_sums = [4 , 2 , 2 , 3 , 1 , 3 , 2 , 6 ],
9+ col_sums = [3 , 2 , 7 , 2 , 2 , 4 , 1 , 2 ],
10+ start_cell = (2 , 5 ),
11+ end_cell = (6 , 7 )
12+ )
13+ return puzzle
14+
15+
516def main ():
617 """
718 Example usage of the Snake solver.
819
9- TODO: Replace with your specific puzzle parameters and usage.
1020 """
1121 print ("Snake MIP Solver - Example Usage" )
1222 print ("=" * 50 )
1323
14- # TODO: Create your puzzle instance
15- # Example:
16- # puzzle = SnakePuzzle(
17- # size=5,
18- # constraints=[1, 2, 3, 2, 1]
19- # )
20-
24+
2125 try :
22- # For now, create a basic puzzle (replace with your parameters)
23- puzzle = SnakePuzzle ()
26+ puzzle = example_8x8 ()
2427 print (f"Created puzzle: { puzzle } " )
2528
2629 # Create solver
@@ -37,7 +40,34 @@ def main():
3740 if solution is not None :
3841 print (f"\n ✅ Solution found in { solve_time :.3f} seconds!" )
3942 print (f"Solution: { solution } " )
43+ print (puzzle .get_board_visualization ())
4044
45+ manual_solution = set ()
46+ manual_solution .add ((2 , 5 ))
47+ manual_solution .add ((1 , 5 ))
48+ manual_solution .add ((0 , 5 ))
49+ manual_solution .add ((0 , 4 ))
50+ manual_solution .add ((0 , 3 ))
51+ manual_solution .add ((0 , 2 ))
52+ manual_solution .add ((1 , 2 ))
53+ manual_solution .add ((2 , 2 ))
54+ manual_solution .add ((3 , 2 ))
55+ manual_solution .add ((3 , 1 ))
56+ manual_solution .add ((3 , 0 ))
57+ manual_solution .add ((4 , 0 ))
58+ manual_solution .add ((5 , 0 ))
59+ manual_solution .add ((5 , 1 ))
60+ manual_solution .add ((5 , 2 ))
61+ manual_solution .add ((6 , 2 ))
62+ manual_solution .add ((7 , 2 ))
63+ manual_solution .add ((7 , 3 ))
64+ manual_solution .add ((7 , 4 ))
65+ manual_solution .add ((7 , 5 ))
66+ manual_solution .add ((7 , 6 ))
67+ manual_solution .add ((7 , 7 ))
68+ manual_solution .add ((6 , 7 ))
69+ print (puzzle .get_board_visualization (manual_solution , show_indices = True ))
70+ print (f"Manual solution valid? { puzzle .is_valid_solution (manual_solution )} " )
4171 # TODO: Add solution visualization or validation
4272 # Example:
4373 # if puzzle.is_valid_solution(solution):
0 commit comments