Project Cube: well-designed or not?
In a hurry? Skip to the live silhouette pair solver and start drawing card pairs.
Project Cube is a small wooden puzzle game by Alain Rivollet. Two players race to build a 3-D figure whose front silhouette matches one card and whose side silhouette matches another. The deck has fifteen cards.
The natural question — the one that started this — is: does every pair of cards have a stable solution?
My quest to solve it started with the obvious thought: well, how many possible configurations of the blocks are there? I picked Rust to implement this. After about thirty minutes I was stoked — the enumeration was done. The one thing I'd left as a TODO was the small matter of when does something balance? Little did I know that this was actually the difficult part — not the enumeration, but given a 3-D structure, decide whether it is stable. Once I'd worked that out, the rest fell into place: an analysis of the game, an answer to whether the deck could be extended with new cards, and a live solver you can reference during gameplay for whichever pair you've drawn.