A daily emoji code-breaking puzzle game inspired by Wordle and Mastermind. Guess the secret sequence of five emojis in nine tries using visual clues!
🎮 Play now: https://formulaic.dev/
Formulaic is a language-agnostic, accessible puzzle game that challenges players to decode a secret emoji sequence using logical deduction. Each day brings a new puzzle that's the same for all players worldwide, creating a shared daily challenge experience.
- 🗓️ Daily Puzzles - New challenge every day, same for all players
- 🎨 Visual Accessibility - Uses distinct emoji shapes instead of colors
- 🧩 Logic-Based Gameplay - Pure deduction, no language barriers
- 📱 Responsive Design - Works on desktop and mobile
- 💾 Progress Saving - Your game state and statistics persist
- 🎊 Celebratory Animations - Satisfying win sequences
- 📤 Social Sharing - Share your results without spoilers
Guess the secret emoji pattern in nine tries or less. After each guess, use the clues to figure out the right pattern and win!
- Select five emojis from the palette to fill a row
- Submit your guess using the Submit button
- Check the clues that appear to see how close you were
- Learn from the feedback and make a better guess on the next line
The game uses 8 distinct emojis chosen for their visual uniqueness and accessibility: 🍓 🚚 🌼 🌲 🧵 ☂️ 💕 💍
After each guess, you'll see clues on the right side of your guess:
-
⚫ Correct Emoji, Correct Spot
- You have the right emoji in the perfect position
-
⚪ Correct Emoji, Wrong Spot
- You have a correct emoji, but it's in the wrong place
If you see clues ⚫ ⚪, this means:
- One emoji is in the exact right position
- One emoji is correct, but in the wrong position
- The other three emojis are not in the secret pattern at all
- 🚨 Clues don't line up with your guess positions - they just show total counts
- 🔄 Duplicates are allowed in the secret pattern (like 🍓 🌲 🌲 💍 🚚)
- Frontend: Vanilla HTML, CSS, and JavaScript
- No Backend: Fully client-side implementation
- Hosting: GitHub Pages
- Daily Puzzles: Date-seeded pseudo-random number generator
- Seeded PRNG: xmur3 + sfc32 algorithms for deterministic daily puzzles
- Local Storage: Game state and statistics persistence
- CSS Grid & Flexbox: Responsive layout system
- Dialog API: Modal implementations
- Clipboard API: Share functionality
// Example game state structure
{
dayIndex: 123,
guesses: [["🍓", "🌲", "🚚", "🍓", "💍"]],
feedbacks: [{black: 2, white: 1}],
currentGuess: ["🌼", "🚚"],
isComplete: false,
isWin: false
}- Visual Clarity: Distinct emoji shapes work for all vision types
- No Color Dependence: Game logic relies on shapes, not colors
- Clear Typography: High contrast text and proper sizing
- Keyboard Support: Full keyboard navigation and shortcuts
- Progressive Enhancement: Works without JavaScript (basic functionality)
- Responsive Design: Optimized for all screen sizes
- Performance: Lightweight, fast loading
- Intuitive Interface: Self-explanatory game mechanics
Each day's puzzle is generated using a deterministic algorithm:
- Date Seed: Current date (YYYY-MM-DD) creates a unique seed
- PRNG: Seeded random number generator ensures same puzzle globally
- Sequence Creation: 5 emojis selected from the 8-emoji palette
- Duplicates: Algorithm allows repeated emojis in sequences
The feedback system implements classic Mastermind rules:
// Simplified evaluation logic
function evaluateGuess(secret, guess) {
let exactMatches = 0;
let colorMatches = 0;
// Count exact position matches
// Count total color matches (excluding exacts)
// Return {black: exactMatches, white: colorMatches}
}- Games Played: Total puzzles attempted
- Win Rate: Percentage of games won
- Current Streak: Consecutive wins
- Guess Distribution: Histogram of solve attempts (1-9 guesses)
- Emoji Palette: 4×2 grid of selectable emojis
- Game Board: 9×5 grid showing guesses and feedback
- Action Buttons: Delete and Submit with proper states
- Info Modal: Comprehensive how-to-play guide
- Bounce Animation: Emojis bounce left-to-right on submission
- Slide-in Feedback: Clues appear with smooth animation
- Win Celebration: Emoji celebration with confetti effect
- Toast Messages: Contextual feedback for user actions
Generates spoiler-free shareable text:
Formulaic #172 - 4/9
Guess 1: ⚪
Guess 2: ⚫⚪
Guess 3: ⚫⚫⚪
Guess 4: ⚫⚫⚫⚫⚫
https://formulaic.dev/
webGame/
├── index.html # Main game interface
├── styles/main.css # All styling and animations
├── scripts/app.js # Game logic and interactions
└── README.md # This documentation
generateSecret(): Creates daily puzzle from date seedevaluateGuess(): Implements Mastermind feedback logicrenderBoard(): Updates visual game statesubmitGuess(): Handles guess submission with animationsbuildShareText(): Creates shareable results format
- Modern browsers with ES6+ support
- Dialog API for modals (with fallbacks)
- Clipboard API for sharing (with fallbacks)
- CSS Grid and Flexbox for layout
- 9 Attempts: Generous attempt limit for accessibility
- 8 Emoji Palette: Balanced complexity vs. overwhelming
- Duplicate Allowance: Adds strategic depth
- Visual Feedback: Clear progress indication
The classic Mastermind game typically uses:
- 4 positions × 6 colors = moderate difficulty
- Formulaic uses 5 positions × 8 emojis = similar complexity
- Added attempts (9 vs. traditional 6) make it more approachable
- Hard Mode: 6 attempts instead of 9
- Color Themes: Dark/light mode toggle
- Sound Effects: Audio feedback for actions
- Streak Celebrations: Special animations for milestones
- Custom Emoji Sets: Seasonal or themed emoji palettes
This project is open source and available under the MIT License.
- Inspiration: Wordle by Josh Wardle
- Game Mechanics: Classic Mastermind board game
- Community: Puzzle game enthusiasts worldwide
Made with ❤️ for puzzle lovers everywhere
Play daily at https://formulaic.dev/