A fun and addictive match-3 puzzle game built with vanilla HTML, CSS, and JavaScript. Match colorful emoji candies to score points before time runs out!
- Classic Match-3 Gameplay: Swap adjacent emojis to create matches of 3 or more
- Special Power-Ups:
- ๐ Striped Horizontal (4 in a row): Clears entire row
- ๐ฏ Striped Vertical (4 in a column): Clears entire column
- ๐ฃ Bomb (5 matches): Clears surrounding 3x3 area
- Time Challenge: Complete as many matches as possible in 60 seconds
- Move Limit: Strategic gameplay with 20 moves per game
- Score Tracking: Local high score persistence using localStorage
- Smooth Animations: Fade effects and popup score indicators
- Sound Effects: Audio feedback for swaps and matches
- Drag-and-Drop Interface: Intuitive controls for swapping candies
- Drag and Drop: Click and drag an emoji to swap it with an adjacent emoji (up, down, left, or right)
- Match 3+: Create horizontal or vertical matches of 3 or more identical emojis
- Create Power-Ups:
- Match 4 emojis to create a striped candy
- Match 5 emojis to create a bomb
- Score Points:
- 3-match: 3 points
- 4-match: 11 points (includes power-up bonus)
- 5-match: 12 points (includes power-up bonus)
- Power-up activation: 10-15 bonus points
- Beat the Clock: Complete as many matches as possible within 60 seconds and 20 moves
- Beat Your High Score: Try to surpass your previous best!
The game features 6 colorful fruit emojis:
- ๐ Strawberry
- ๐ Lemon
- ๐ Orange
- ๐ Green Apple
- ๐ซ Blueberry
- ๐ Grape
- A modern web browser (Chrome, Firefox, Safari, Edge)
- No additional dependencies or installations required!
-
Clone the repository:
git clone https://github.com/yourusername/emoji-blast.git
-
Navigate to the project directory:
cd EmojiBlast -
Open the game:
- Simply double-click
main.htmlor - Right-click and select "Open with" your preferred browser
- Simply double-click
If you want to run it on a local server:
# Using Python 3
python -m http.server 8000
# Using Node.js (with http-server)
npx http-server
# Using PHP
php -S localhost:8000Then navigate to http://localhost:8000/main.html in your browser.
EmojiBlast/
โ
โโโ main.html # Main game file (HTML, CSS, and JavaScript)
โโโ README.md # Project documentation
You can modify the game parameters in main.html:
// Line 119-121: Adjust initial game settings
let moves = 20; // Change number of moves
let timeLeft = 60; // Change time limit in seconds// Line 123: Add or modify candy emojis
const candyIcons = ["๐", "๐", "๐", "๐", "๐ซ", "๐", "๐", "๐"];// Line 115: Change grid dimensions (current: 8x8)
const width = 8; // Change to 6 for 6x6 or 10 for 10x10Update the CSS grid dimensions accordingly:
/* Line 10-11: Update grid size */
.grid {
width: 320px; /* width * 40px */
height: 320px; /* height * 40px */
}- HTML5: Structure and layout
- CSS3: Styling, animations, and responsive design
- Vanilla JavaScript: Game logic, DOM manipulation, and event handling
- LocalStorage API: Persistent high score storage
- Drag and Drop API: Intuitive candy swapping mechanism
- Match Detection: Algorithm checks for horizontal and vertical matches of 3, 4, and 5
- Gravity System: Emojis fall down to fill empty spaces after matches
- Special Candy Generation: Automatically created for 4-in-a-row or 5-match combinations
- Cascade Effects: New emojis drop from the top to create potential chain reactions
- Game Loop: Runs at 150ms intervals for smooth gameplay
- Plan Ahead: Look for potential matches before making a move
- Create Power-Ups: Prioritize creating 4 or 5 matches for powerful effects
- Use Power-Ups Wisely: Save bombs and striped candies for maximum impact
- Cascade Combos: Create matches that lead to chain reactions
- Manage Your Moves: Use your 20 moves strategically
- Time Management: Keep an eye on the timer - fast moves = more points!
| Browser | Supported | Version |
|---|---|---|
| Chrome | โ | 90+ |
| Firefox | โ | 88+ |
| Safari | โ | 14+ |
| Edge | โ | 90+ |
| Opera | โ | 76+ |
- Audio files are loaded from external CDN (requires internet connection)
- Game state is not saved between sessions (only high score is saved)
- Multiple difficulty levels (Easy, Medium, Hard)
- Additional power-ups and special candies
- Level progression system
- More animations and visual effects
- Mobile touch support
- Leaderboard system
- Background music toggle
- Pause/Resume functionality
- Hint system for possible moves
- Achievement system
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
PUNIT KUMAR
- Inspired by the classic Candy Crush game
- Sound effects from SoundJay
- Emoji graphics provided by Unicode Consortium
Enjoy the game! ๐ฎ Happy matching! ๐ฌ
If you like this project, please give it a โญ on GitHub!