do you have any high level thoughts about how those could be used to dynamically solve these puzzles?
I was thinking about how to do this using QLearning to solve the optimal solution given any level, though I am not sure how long it would take to converge since their are so many different actions.