What you will use in this project
- Game state machines
- CSS transitions and 3D transforms
- High-score persistence with localStorage
- Event delegation in a grid
Complete each step in the editor and watch the result as your page takes shape.
Create an engaging puzzle game.
Add multiple difficulty levels and a scoring system.
Medium · +220 XP · HTML CSS JavaScript
Check code when you’re ready. We grade your work against the step’s rubric and tell you exactly what passed and what still needs work.
This project is broken into 11 steps. Each one has its own pass criterion. Click Check code on every step to verify your progress and earn the full +220 XP.
| # | Step & pass criterion | Weight |
|---|---|---|
| 1 | Page shell Stats, board, reset present | 10 pts |
| 2 | Difficulty selector Three difficulty buttons | 10 pts |
| 3 | Style the board Board styled as grid | 5 pts |
| 4 | Style tile states Tile flipped or matched state styled | 5 pts |
| 5 | Define the deck Code shuffles the deck | 10 pts |
| 6 | Render the board JS builds tiles into #board | 10 pts |
| 7 | Click to flip Tile click handler wired | 5 pts |
| 8 |
Match or flip back
|
25 pts |
| 9 | Stats and timer Moves and timer update | 10 pts |
| 10 | Difficulty and reset Difficulty and reset clicks wired | 5 pts |
| 11 | High score High score in localStorage | 5 pts |
Sign in to your W3Schools account to unlock this project, earn XP, and track your progress.
Sign in Create accountIf you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com
If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com