A modern Progressive Web App (PWA) implementation of the classic Minesweeper game, built with web technologies. Works perfectly on both desktop and mobile devices.
- Classic Minesweeper experience - All original game rules
- 3 difficulty levels - Easy (10%), Medium (15%), Hard (25%)
- Custom dimensions - Customizable from 5x5 to 30x30
- Advanced statistics - 3BV, efficiency, experience points
- Estimated time - Pre-calculated time estimation
- Explosion effects - Visual and audio effects
- Haptic feedback - Vibration support on compatible devices
- Works offline - Play without internet connection
- Installable - Add to home screen like a real app
- Fast loading - Instant opening thanks to caching
- Full screen - No browser bars
- Mobile optimized - Touch controls
- Single Click/Tap: Reveal cell
- Double Click/Tap: Closed cell โ Flag/unflag | Open cell โ Reveal surroundings
- Right Click: Flag/unflag (PC)
- Long Press (0.2s): Flag/unflag (Mobile)
- Adjustable tap delay - Optimized for mobile experience
# Clone the project
git clone <repository-url>
cd minesweeper
# Start a simple HTTP server
# Python 3
python3 -m http.server 8000
# Node.js (with npx)
npx serve .
# Open in browser: http://localhost:8000/minesweeper.html- Open
minesweeper.htmlin Chrome browser - Tap the โฎ (three dots) menu in the top right
- Select "Add to Home screen" or "Install"
- Confirm the app name
- โ App is now on your home screen!
- Open
minesweeper.htmlin Safari - Tap the Share button (๐ค) at the bottom
- Scroll down and find "Add to Home Screen"
- Tap "Add"
- โ App is now on your home screen!
- Open
minesweeper.htmlin browser - Click the install icon (โ) in the address bar
- Click "Install"
- โ App is now on your desktop!
PWAs require HTTPS to work properly. Here are some free options:
-
GitHub Pages (Recommended)
- Upload repo to GitHub
- Settings > Pages > Deploy from main branch
- Automatic HTTPS
-
Netlify
- Drag and drop folder to Netlify
- Automatic HTTPS
-
Vercel
- Deploy with
vercelcommand - Automatic HTTPS
- Deploy with
-
Cloudflare Pages
- Auto-deploy from GitHub
- Free and fast
- Goal: Win by flagging all mines or revealing all safe cells
- Numbers: Show the count of adjacent mines
- Hint: Your first click will never be a mine
- Single Click/Tap: Reveal cell
- Double Click/Tap:
- Closed cell โ Flag/unflag
- Open cell โ Reveal surroundings (Chord operation)
- Right Click: Flag/unflag (PC)
- Long Press (0.2s): Flag/unflag (Mobile)
- Easy: 10x10, 10 mines (10%)
- Medium: 10x10, 15 mines (15%)
- Hard: 10x10, 25 mines (25%)
- Custom: Customizable from 5x5 to 30x30
- Games played
- Games won
- Games lost
- Win rate
- Best time
- 3BV (Board Benchmark Value): Minimum clicks required to solve the board
- 3BV/s: 3BV per second (speed indicator)
- Efficiency: 3BV / Total Left Clicks ratio
- Experience: Stars earned based on performance
- Estimated time: Pre-calculated time estimation
- HTML5 - Semantic markup
- CSS3 - Modern styling, animations, responsive design
- Vanilla JavaScript - Framework-free, performant
- PWA - Service Worker, Web App Manifest
- LocalStorage - Offline data persistence
minesweeper/
โโโ minesweeper.html # Main game file
โโโ manifest.json # PWA manifest
โโโ service-worker.js # Service Worker (PWA)
โโโ explosion.mp3 # Explosion sound effect
โโโ README.md # This file
- Responsive Design - Mobile and desktop compatible
- Touch Optimized - Mobile touch controls
- Offline First - Works without internet
- Performance - Fast loading and execution
- Accessibility - Accessible design
- Toggle explosion sound on/off
- Sound volume adjustment
- Tap delay setting (50-300ms)
- Long press duration (200ms)
- Haptic feedback (iPhone)
- Classic Windows 95 style interface
- Animated explosion effects
- Responsive cell sizes
"Add to Home Screen" not showing?
- Must use HTTPS (except localhost)
- manifest.json and service-worker.js must be accessible
Not working offline?
- Load the page online at least once
- Check Service Worker is registered (DevTools > Application)
Updates not showing?
- Clear browser cache
- Unregister and re-register Service Worker
Double tap not working on mobile?
- Increase tap delay setting (Settings > Mobile Controls)
- Reduce long press duration
Sound not playing?
- Check browser audio settings
- Ensure sound file is loaded
This project is open source and developed for educational purposes.
Abdรผlkerim DรLGER
- LinkedIn: abdlkrmdlgr
- Website: girisim.dev
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Multiplayer mode
- Different themes
- More statistics
- Social sharing
- Achievement system
- Daily challenges
Note: This game works completely offline and does not collect personal data. All statistics are stored locally on your device.