CS 463 Program 1

Due at the beginning of class (1pm) on Wednesday, September 10th.

Consider the Hungarian Rings Puzzle. You will, in the next few assignments, be asked to program a solver for it. For this assignment, you have some programming and some problem solving.

Programming

Design and implement data structures for the puzzle itself, and to randomize the puzzle. The randomize function should take the dimensions of the puzzle (number of elements on the rings, and number of elements between the intersections), and the apparent distance to a solution. There are four actions, which are pairwise inverses; you should prohibit the randomizer from undoing the action that was just taken.

To hand in:

Problem Solving

Come up with at least one heuristic for the puzzle, and explain both the heuristic and why you believe that that heuristic is admissable.