Master Vim commands while creating ASCII art!
VIMSCII is a terminal-based game that helps you practice Vim commands while creating ASCII art. Race against time, perfect your Vim skills, and compete with your own records!
โจ๏ธ Authentic Vim-like interface and commands
๐จ Create ASCII art with familiar Vim controls
โก Challenge yourself with time trials
๐ Local record tracking system
๐ฎ Expandable stages through simple text files
- Set up a virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies
pip install -r requirements.txtRun the game:
python src/game.py- Select a stage from the menu
- Create the ASCII art shown on the right side
- Use Vim commands to edit and navigate
- Submit your work with
:wqwhen ready - Beat your previous records!
ESC- Enter Normal modei- Enter Insert mode:- Enter Command mode
h- Move leftj- Move downk- Move upl- Move right
:wq- Submit your work (saves only if correct):q!- Quit without saving
Your completion times are automatically saved in vimscii_records.txt with the following format:
2024-02-06 15:30:22 | Triangle | 12.45s
vimscii/
โโโ src/
โ โโโ game.py # Main game logic
โ โโโ stage.py # Stage management
โ โโโ records.py # Record keeping
โโโ stages/ # ASCII art stages
โ โโโ basic/
โ โโโ triangle.txt
โโโ requirements.txt
- Create a new
.txtfile in an appropriate category understages/ - Add your ASCII art
- Test the stage by playing it
- Submit a pull request
- Keep ASCII art reasonable in size (max 20x20 recommended)
- Use basic ASCII characters for better compatibility
- Test your stage thoroughly before submitting
- Consider the difficulty level when choosing a category
This project uses Black for code formatting. Please ensure your code adheres to the Black style guidelines.
To format your code, run:
pip install black
black .Or, to check which files need formatting without applying changes:
black --check .You can also configure your editor to run Black automatically on save. For VS Code, add the following to your settings.json:
{
"python.formatting.provider": "black",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}The game is built with:
- blessed for terminal UI
- Pure Python for game logic
- Text files for stage storage and record keeping
- Additional Vim commands (dd, yy, etc.)
- More complex ASCII art stages
- Stage categories by difficulty
- Stage completion statistics
- Time-based achievements
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Vim and the ASCII art community
- Built with blessed library
- Thanks to all ASCII art contributors