A comprehensive Python-based wrestling tournament simulation game that allows you to create custom wrestlers, manage rosters, and run exciting tournaments with realistic match mechanics.
- Customizable Stats: Create wrestlers with unique attributes including:
- Strength: Damage resistance and grappling power
- Speed: Attack and reaction speed
- Agility: Escape ability from grapples and pins
- Health: Total damage capacity
- Power: Attack damage output
- Grapple: Grappling success rate
- Stamina: Special move frequency
- Multiple Creation Methods: Manual input or auto-generation with random stats
- Gender Diversity: Support for male, female, and other gender identities
- Training System: Improve wrestler stats over time
- Single-Elimination Tournaments: Classic bracket-style competitions
- Flexible Sizing: Support for 4, 8, 16, 32+ participants
- Random Pairings: Fair and unpredictable matchups
- Realistic Match Simulation:
- Basic attacks with damage calculation
- Grapple attempts with success/failure mechanics
- Pin attempts with health-based success rates
- Stamina and health regeneration between turns
- Save/Load System: Persistent roster storage using pickle
- Flexible Operations: Add, remove, and retrieve wrestlers by name or index
- Batch Operations: Create multiple wrestlers efficiently
# Clone the repository
git clone https://github.com/SthembisoMfusi/Wrestling_simulator.git
cd Wrestling_simulator
# Install in development mode
pip install -e .
# Or install with development dependencies
pip install -e .[dev]# Run the interactive simulator
wrestling-simulator
# Or run directly with Python
python -m wrestling_simulator.mainfrom wrestling_simulator import Wrestler, Roster, Tournament
# Create a wrestler
wrestler = Wrestler("The Rock", "male", 90, 80, 70, 160, 95, 15, 85)
# Create a roster
roster = Roster(8)
# ... fill roster with wrestlers
# Run a tournament
tournament = Tournament(roster, 8)
tournament.tournamentPlay()wrestling_simulator/
βββ wrestling_simulator/ # Main package
β βββ core/ # Core functionality
β β βββ wrestler.py # Wrestler class and mechanics
β β βββ roster.py # Roster management
β β βββ tournament.py # Tournament logic
β βββ data/ # Data files
β β βββ wrestler_names/ # Name lists for auto-creation
β βββ main.py # CLI entry point
β βββ __init__.py
βββ tests/ # Test suite
βββ docs/ # Documentation
βββ examples/ # Example scripts
βββ .github/workflows/ # CI/CD configuration
βββ setup.py # Package setup
# Run all tests
pytest
# Run with coverage
pytest --cov=wrestling_simulator
# Run specific test file
pytest tests/test_wrestler.py -v# Format code
black wrestling_simulator tests
# Lint code
flake8 wrestling_simulator tests
# Type checking
mypy wrestling_simulatorpip install pre-commit
pre-commit installWe use automated release management with GitHub Actions:
# For patch releases (bug fixes)
python scripts/release.py --patch
# For minor releases (new features)
python scripts/release.py --minor
# For major releases (breaking changes)
python scripts/release.py --major
# For specific version
python scripts/release.py --version 1.2.3- Automated: The release script handles version bumping, tagging, and triggering GitHub Actions
- Build: GitHub Actions builds the package and creates distribution files
- Publish: Automatically publishes to PyPI for stable releases
- Assets: Creates GitHub release with downloadable packages
See RELEASE_PROCESS.md for detailed information.
- Contributing Guidelines
- Code of Conduct
- Release Process
- Release Checklist
- API Documentation (coming soon)
We welcome contributions! Please see our Contributing Guidelines for details on how to:
- Report bugs
- Suggest features
- Submit pull requests
- Set up the development environment
- Enhanced Match Types: Ladder matches, cage matches, battle royals
- Tag Team Support: Multi-wrestler matches and team management
- Career Mode: Long-term wrestler development and storylines
- GUI Interface: Modern graphical user interface
- Advanced AI: Strategic decision-making algorithms
- Statistics Dashboard: Detailed analytics and reporting
- Multiplayer Support: Online tournaments and competitions
- Mod Support: Custom moves, arenas, and game modes
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by classic wrestling video games
- Built with modern Python best practices
- Community-driven development and feedback
- π Bug Reports: GitHub Issues
- π‘ Feature Requests: GitHub Discussions
- π§ Contact: thanduxolomfusi@gmail.com
Ready to step into the ring? π₯ Start your wrestling empire today!