The problem is calculating their sizes and positions. I need them to fit together so that there isn't much "white space" left over. A constant margin between them of, say, 20 pixels would be ideal but is not essential.
Normally I'd use a "brute force" approach, keeping track of every pixel and "falsing" it when it gets covered by a block, but since the total space will be 800x800, that method would take a long time to calculate.
Is there any quicker, smarter way to do this?