Puzzle game, explanation inside.