Skip to content

guysa-AMG/Wrestling_simulator

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

45 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Wrestling Simulator

CI License: MIT Python 3.8+

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.

🎯 Features

πŸ₯Š Wrestler System

  • 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

πŸ† Tournament Management

  • 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

πŸ’Ύ Roster Management

  • 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

πŸš€ Quick Start

Installation

# 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]

Basic Usage

# Run the interactive simulator
wrestling-simulator

# Or run directly with Python
python -m wrestling_simulator.main

Programmatic Usage

from 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()

πŸ“ Project Structure

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

πŸ§ͺ Testing

# Run all tests
pytest

# Run with coverage
pytest --cov=wrestling_simulator

# Run specific test file
pytest tests/test_wrestler.py -v

πŸ› οΈ Development

Code Quality Tools

# Format code
black wrestling_simulator tests

# Lint code
flake8 wrestling_simulator tests

# Type checking
mypy wrestling_simulator

Pre-commit Hooks

pip install pre-commit
pre-commit install

πŸš€ Releases

Creating a Release

We 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

Release Process

  1. Automated: The release script handles version bumping, tagging, and triggering GitHub Actions
  2. Build: GitHub Actions builds the package and creates distribution files
  3. Publish: Automatically publishes to PyPI for stable releases
  4. Assets: Creates GitHub release with downloadable packages

See RELEASE_PROCESS.md for detailed information.

πŸ“– Documentation

🀝 Contributing

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

πŸ“‹ Roadmap

  • 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

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Inspired by classic wrestling video games
  • Built with modern Python best practices
  • Community-driven development and feedback

πŸ“ž Support


Ready to step into the ring? πŸ₯Š Start your wrestling empire today!

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 100.0%