func Flip
crossing ActionFlip reveals the tile at index (0..15).
Rules:
- If two tiles are already showing from a previous unmatched attempt, this Flip first clears them (they turn back to hidden), then reveals the requested tile as the first of a new attempt.
- Revealing the second tile of an attempt completes a move: matching faces stay face-up (matched); a mismatch leaves both showing until the next Flip clears them.
- Flipping an already-matched or already-showing tile is rejected.