Updated in May 2025.
This course now features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. This course teaches you how to build a JavaScript-based card game with random card ordering mechanics. By the end of the course, you will be able to create a fully functional game, applying key skills like HTML structure, CSS Grid for layout, JavaScript asynchronous programming with async/await, the Fetch API for data retrieval, and the Fisher-Yates shuffle algorithm for randomization. You'll also gain expertise in DOM manipulation, CSS animations, and adding interactive features such as dynamic card flipping and game logic with counters. The course is divided into six sections. In the first section, you'll learn to write the HTML, style with CSS, and implement CSS Grid for a responsive layout. You'll also explore CSS root variables and best practices for naming conventions. The second section focuses on populating your game board with cards, using JSON to store card data, and integrating JavaScript for dynamic card referencing. You'll also master advanced techniques for efficient DOM updates. In section three, you’ll implement card flip effects and randomize the card order using the Fisher-Yates shuffle. Section four delves into logic for matching cards, counters, and restricting clicks. The fifth section introduces visual effects like falling stars and a losing image overlay. By the end, you’ll have a polished game ready for testing. This is an intermediate-level course. Developers with basic HTML, CSS, and JavaScript knowledge who want to skill up will find it helpful.