A fun word-guessing game where you must guess the word correctly to save programming languages from Assembly!
In Assembly: Endgame, you're tasked with saving the programming world from Assembly language taking over. Each incorrect guess eliminates one of your favorite programming languages forever! Can you guess the word before Assembly becomes the only language left?
- 🎯 Word Guessing Gameplay - Classic hangman-style mechanics with a programming twist
- 🚫 Language Elimination - Watch programming languages disappear with each wrong guess
- 🏆 Win Condition - Complete the word before all 8 languages are lost
- 💀 Progressive Difficulty - Feel the pressure as languages fall one by one
- ♿ Accessibility - Screen reader support and keyboard navigation
- 📱 Responsive Design - Works seamlessly on mobile and desktop
- 🎨 Visual Feedback - Color-coded keyboard and animated game states
- 🎭 Clever Farewells - Randomized goodbye messages for eliminated languages
- React 19 - Latest React with modern hooks
- Vite - Fast build tool and dev server
- JavaScript (ES6+) - Modern JavaScript features
- CSS3 - Custom styling with animations
- clsx - Utility for conditional className management
- Node.js (version 18.0.0 or higher recommended)
- npm (version 9.0.0 or higher recommended)
-
Clone the repository:
git clone https://github.com/yourusername/assembly-endgame.git cd assembly-endgame -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and navigate to:
http://localhost:5173
- Start the Game - A random word is chosen automatically
- Guess Letters - Click letters on the on-screen keyboard
- Watch the Languages - Each wrong guess eliminates a programming language
- Win or Lose:
- ✅ Win - Reveal the entire word before losing all 8 languages
- ❌ Lose - Make 8 incorrect guesses and Assembly takes over
- Play Again - Click "New Game" to try another word
- You have 8 attempts (one for each language except Assembly)
- Correct guesses reveal all instances of that letter
- Incorrect guesses eliminate a programming language
- Each letter can only be guessed once
- Languages eliminated: HTML → CSS → JavaScript → React → TypeScript → Node.js → Python → Ruby
assembly-endgame/
├── public/
│ └── wonShot.png
├── src/
│ ├── App.jsx # Main game component with logic
│ ├── languages.js # Programming languages data & styling
│ ├── utils.js # Helper functions (word selection, farewells)
│ ├── words.js # 500+ word dictionary
│ ├── index.jsx # React entry point
│ └── index.css # Global styles and animations
├── index.html # HTML template
├── package.json # Dependencies and scripts
├── vite.config.js # Vite configuration
└── README.md
currentWord- The secret word to guessguessedLetters- Array of all attempted letters
wrongGuessCount- Tracks incorrect guessesisGameWon- All letters guessed correctlyisGameLost- 8 incorrect guesses madeisGameOver- Either win or loss condition met
- ARIA live regions for screen reader updates
- Semantic HTML structure
- Keyboard-friendly button controls
- Status announcements for each guess
- Visually hidden helper text
| Command | Description |
|---|---|
npm run dev |
Start the development server |
npm run build |
Build the app for production |
npm run lint |
Run ESLint to check for code issues |
npm run preview |
Preview the production build locally |
- Add difficulty levels (4, 6, 8, or 10 letter words)
- Implement high score leaderboard with localStorage
- Add sound effects and background music
- Create themed word categories (tech, nature, food, etc.)
- Add multiplayer support
- Include hints system
- Add animations for language elimination
- Create daily challenge mode
- Add dark/light theme toggle
This project is deployed on Netlify. To deploy your own version:
-
Build the project:
npm run build
-
Deploy the
distfolder to your hosting service
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
- Fork the project
- Create your 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
- GitHub: David McCullough
- LinkedIn: David McCullough
- Portfolio: My Portfolio
Made with ❤️ and React
