puzzle generator + solution