termitype
Version:
A simple terminal based typing game
123 lines (84 loc) • 3.32 kB
Markdown
# Termitype
[](https://www.npmjs.com/package/termitype)
[](https://www.npmjs.com/package/termitype)
[](https://github.com/Essien-Emmanuel/termitype/blob/main/LICENSE)
[](https://nodejs.org)
> A terminal-based typing game designed to improve your typing speed and accuracy.
## 🚀 Features
- 🎮 Multiple difficulty levels: Beginner, Intermediate, Advanced, and Master
- 📊 Real-time stats: WPM, accuracy, mistakes, and time taken
- 🖋️ Practice with predefined or custom text prompts
- 💾 Save and resume progress
- 🔀 Randomized prompts for dynamic practice
- 🖥️ Minimal and intuitive CLI interface
- 🛠️ Customizable settings for personalized gameplay
## 📦 Installation
Install globally via npm:
```sh
npm install -g termitype
```
## 🎯 Quick Start
After installation, you can start the game by typing:
```sh
termitype
# or use the shorthand
typ
```
## 📖 Usage
### Game Flow
1. **Title Screen**: Set up a username or skip directly to the main menu.
2. **Main Menu**: Choose from Practice, Practice Category, Settings, or Exit.
3. **Game Levels**: Select your difficulty level (Beginner, Intermediate, Advanced, Master).
4. **Typing Practice**: Type the displayed text prompt as quickly and accurately as possible.
5. **Results**: View your stats, including WPM, accuracy, mistakes, and time taken.
### Keyboard Controls
| Key | Action |
|-------------|-------------------------------|
| `Ctrl+C` | Exit the game |
| `Enter` | Confirm selection |
| `Arrow Keys`| Navigate menus |
| `Ctrl+S` | Save current game in game mode|
| `Ctrl+L` | Show game menu in game mode |
## 🛠️ Development
### Prerequisites
- Node.js (>= 18.x)
- npm (>= 9.x)
### Local Setup
1. Clone the repository:
```sh
git clone https://github.com/Essien-Emmanuel/termitype.git
cd termitype
```
2. Install dependencies:
```sh
npm install
```
### Scripts
- Start the game in development mode:
```sh
npm run game
```
- Build the project:
```sh
npm run build
```
## 🤝 Contributing
Contributions are welcome! Please follow these steps:
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
See [CONTRIBUTING.md](CONTRIBUTING.md) for more details.
## 📄 License
This project is licensed under the ISC License - see the [LICENSE](LICENSE) file for details.
## 👤 Author
**Essien Emmanuel**
- GitHub: [@Essien-Emmanuel](https://github.com/Essien-Emmanuel)
- npm: [termitype](https://www.npmjs.com/package/termitype)
## 🌟 Show your support
Give a ⭐️ if this project helped you!
## 📝 Changelog
See [CHANGELOG.md](CHANGELOG.md) for release history.
---
_This README was generated with ❤️_