Home >Web Front-end >JS Tutorial >Making a Browser Based Game With Vanilla JS and CSS – SitePoint
This article demonstrates building a browser-based flag-guessing game using only vanilla JavaScript and CSS, showcasing the power of modern web technologies without external libraries or frameworks. Let's dive into creating this engaging game step-by-step.
Concept:
The game presents a flag emoji and multiple-choice options. Players select a country, receiving feedback and progressing through rounds.
Step 1: Basic Structure
We'll need a list of countries and their flags (using emojis). A simple interface displays the flag and five answer buttons. CSS uses a grid layout for responsive design. The project structure includes an HTML file, a data.json
file containing country data, and folders for JavaScript, helper functions, CSS, and images.
Step 2: Simple Prototype
We load data.json
using fetch
, then start the game. The startGame
function randomizes the country list, selects an answer, picks four more countries, and updates the DOM with the flag and answer buttons. The checkAnswer
function evaluates player choices, providing feedback. A Fisher-Yates shuffle algorithm randomizes the country order.
Step 3: Modular Code
To improve code organization, we'll use JavaScript modules. The HTML imports step3.js
, which imports helper functions (loadCountries
and shuffle
) from separate files. The game logic is encapsulated within a Game
class, enhancing data integrity and maintainability.
Step 4: Scoring and Game Over
The Game
constructor now includes numTurns
. The DOM is updated to include a score display, a replay button, and a game-over screen. The start
method initializes the score and turn counter, and the nextTurn
method handles round progression, updating the score and triggering the game-over state when all turns are complete. The gameOver
method displays the final score.
Step 5: Animations
CSS animations enhance the user experience. Keyframes create sliding animations for the country list, appearing and disappearing smoothly between turns. The animationend
event ensures smooth transitions.
Step 6: Final Touches
A title screen is added to provide context. A player rating system is implemented based on the final score. Animations are added to celebrate correct answers.
Further Enhancements:
The article suggests several improvements:
This tutorial effectively demonstrates how to create a functional and engaging game with minimal code, highlighting the capabilities of vanilla JavaScript and CSS. The modular approach and use of CSS animations showcase best practices for modern web development.
The above is the detailed content of Making a Browser Based Game With Vanilla JS and CSS – SitePoint. For more information, please follow other related articles on the PHP Chinese website!