3) Memory Match (4×2)

3) Memory Match (4×2)

Flip 2 at a time. Match pairs to clear the board.
datasettimeoutsarray shuffle
Matches: 0/4

How it works: Shuffle pairs, render cards with hidden values in data-val. Track two active flips; if equal, mark matched, else flip back after a short delay.

Learning outcomes: state machines, attribute APIs, shuffling, conditional UI.