Visit the live site here!
Input: a month and a day (e.g. November 20) Output: visually generate all possible solutions for that date. A “solution” is a tiling of all the pieces such that only the given day is uncovered.
The original prompt is described here. Another example is provided here.
This quick implementation was built with React.js, Redux, and JavaScript.
Efficiently finding solutions was the main challenge and was not fully optimized within the short development time frame. Initially, I attempted with a brute force method with a calculation limit to reduce latency. This method consistently placed at least 7 of the 8 blocks in a reasonable time frame. Rather than doing a sensitivity analysis to try to improve the performance, I switched to recursion. This method requires loading time, but always results in a complete solution (all 8 pieces are placed).