Include Directory (include/)
This directory contains all C++ header files (.h/.hpp) for the Pokemon battle simulator.
Planned Structure
include/
├── pokemon_sim/ # Main namespace headers
│ ├── core/ # Core battle system headers
│ │ ├── battle.h # Battle class and enums
│ │ ├── pokemon.h # Pokemon class definition
│ │ ├── move.h # Move system headers
│ │ ├── type.h # Type system and effectiveness
│ │ └── status.h # Status effects
│ ├── data/ # Data management headers
│ │ ├── pokemon_data.h # Pokemon species data
│ │ ├── move_data.h # Move definitions
│ │ └── loader.h # Data loading interface
│ ├── ai/ # AI system headers
│ │ ├── ai_base.h # Base AI interface
│ │ ├── random_ai.h # Random AI strategy
│ │ └── minimax_ai.h # Minimax AI strategy
│ ├── utils/ # Utility headers
│ │ ├── random.h # Random utilities
│ │ ├── stats.h # Stat calculation helpers
│ │ └── constants.h # Game constants
│ └── pokemon_sim.h # Main include file
Header Guidelines
- Include Guards: Use
#pragma oncefor all headers - Forward Declarations: Minimize #include dependencies
- Const Correctness: Mark methods const where appropriate
- Documentation: Doxygen-style comments for public APIs
- Namespace: All code in
pokemon_simnamespace
Public API
The main pokemon_sim.h header provides a clean public interface for library users, hiding implementation details while exposing necessary functionality for battle simulation.