Internally, we are parsing a solution and mask from websudoku. The mask is what allows us to construct a puzzle with hidden spots based on a solution. We should add the capability to generate a new puzzle just by generating a new mask.
The masks should be generated according to the difficulty of the instance difficulty member variable, or the temporary difficulty passed as a parameter to .generate_new_puzzle(Puzzle_difficulty d);