Every 15-puzzle implementation eventually hits the same quiet question: given a starting arrangement, can the player ever reach the goal? The answer is not obvious. Random shuffles fail roughly half the time, and a permissive build that lets the player play an unsolvable board wastes the user's...

Source: [Dev.to](https://dev.to/lizely/designing-a-solvability-gate-for-15-puzzle-implementations-2adb)

Sponsored