Here's little program that solves the cracker barrel triangle game and prints out the steps. It is done through a mixture of functional and imperative code with the board itself presenting a functional interface for moving pieces around.
Right now the code works very quickly on a 5 sided triangle and a 6 sided triangle, but takes an unknown amount of time to run on 7 sides. I think the problem space is blowing up very quickly, but it's entirely possible that there's a bug in this code.
Code is released under the MIT License. Feel free to do what you like with it :)