We're doing a project on this in the Data Structures and Algorithm. The game of Tangram is simple. You've got 7 pieces of certain size and shape. Two are idientical, so thus 5 unique ones.
Try the game and see if you can work it out.
The total number of solutions is HUGE and our project is about sorting and storing information about solutions. We don't have to populate the storage but to at least have a principle of deciphering a shape into some sort of code.