Monday, March 24, 2014

Chess Coding Challenge - Part 3 - Scala solution source code (and interim encoder/decoder implementations)...

Part 1 - How I Leveraged Scala and FP to Find a Solution
Part 2 - Scala infrastructure source code (and two encoder/decoder implementations)
Part 4 - Solution in Human Readable Pseudo-code

Summary:

The Scala code (dropbox public folder share - I STILL SO love this) expanding the set of encoder/decoders to include the solution (and interim steps on the path to the final solution). Included are the Coder implementations; HuffmanSimpleKingsPawnOptimal (solution at 167 bits) and the interim solutions of HuffmanSimple, HuffmanSimpleKings, HuffmanSimpleKingsPawnRows, HuffmanSimpleKingsPawnColumns


Details:
I'm still finding it difficult to make time to progress this project. I am glad to finally have had the time to sit down and get the solution coded up and available. To explain the final solution is going to take more time than I have available this evening. Suffice to say, it is actually a layered set of sub-solutions. And the entire thing is predicated pawns as the primary constraint, and then on specific rules around pawn promotion upon we (Bill and I) optimized. I will return here with one final post detailing the solution in an English (non-code) explanation. I'm committed to making it happen, but...due to circumstances in my personal life, it will likely be another two weeks before that post happens.

This has been very fun, though. I don't have the motivation right now to redo it in Java. That might change in a month or two. If it does, I will write it up and create a post dedicated just to it.

For those who have continued to have the patience to follow this for the last two months, thank you for playing along with me! I cannot wait to see Jim Nelson's and David Stafford's solutions.