Restructure project directories and update includes
Moved source files to src/, header files to include/, and documentation to docs/. Updated Visual Studio project files (.vcxproj, .vcxproj.filters) to reference new file locations and added include/ to the compiler's include path. Added .gitignore and docs/STRUCTURE.md to document the new repository structure. Removed build artifacts and user-specific files from version control.
This commit is contained in:
1 parent
7e72ef5f44
commit
4ba86f109d
34 files changed
+5575
-5427
No files matched your search
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 663 KiB |
@@ -0,0 +1,178 @@
|
||||
# ATRI-2024 Repository Structure
|
||||
|
||||
This document describes the reorganized file structure for the ATRI-2024 FIRA SimuroSot 11vs11 client repository.
|
||||
|
||||
## Directory Structure
|
||||
|
||||
```
|
||||
ATRI-2024/
|
||||
├── src/ # Source code files (.cpp)
|
||||
│ ├── Agentsock.cpp # Socket communication implementation
|
||||
│ ├── BaseAgent.cpp # Base agent class implementation
|
||||
│ ├── DSetupDlg.cpp # Setup dialog implementation
|
||||
│ ├── MainFrm.cpp # Main frame window implementation
|
||||
│ ├── MicroClient.cpp # Main application implementation
|
||||
│ ├── MicroClientDoc.cpp # Document class implementation
|
||||
│ ├── MicroClientView.cpp # View class implementation
|
||||
│ ├── StdAfx.cpp # Precompiled header source
|
||||
│ ├── StrategySystem.cpp # Core strategy system implementation
|
||||
│ └── TParseString.cpp # String parsing utilities
|
||||
│
|
||||
├── include/ # Header files (.h)
|
||||
│ ├── Agentsock.h # Socket communication interface
|
||||
│ ├── BaseAgent.h # Base agent class interface
|
||||
│ ├── DSetupDlg.h # Setup dialog interface
|
||||
│ ├── General.h # General definitions and structures
|
||||
│ ├── MainFrm.h # Main frame window interface
|
||||
│ ├── MicroClient.h # Main application interface
|
||||
│ ├── MicroClientDoc.h # Document class interface
|
||||
│ ├── MicroClientView.h # View class interface
|
||||
│ ├── Resource.h # Resource IDs
|
||||
│ ├── StdAfx.h # Precompiled header
|
||||
│ ├── StrategySystem.h # Strategy system interface
|
||||
│ └── TParseString.h # String parsing utilities interface
|
||||
│
|
||||
├── res/ # Resource files
|
||||
│ ├── MicroClient.ico # Application icon
|
||||
│ ├── MicroClient.rc2 # Additional resources
|
||||
│ ├── MicroClientDoc.ico # Document icon
|
||||
│ └── Toolbar.bmp # Toolbar bitmap
|
||||
│
|
||||
├── docs/ # Documentation
|
||||
│ ├── Contest-Rules-2024.pdf # Competition rules
|
||||
│ └── Field Coordinates.jpg # Field coordinate system reference
|
||||
│
|
||||
├── MicroClient.sln # Visual Studio solution file
|
||||
├── MicroClient.vcxproj # Visual Studio project file (VS 2010+)
|
||||
├── MicroClient.vcxproj.filters # Project filters
|
||||
├── MicroClient.rc # Resource script
|
||||
├── MicroClient.dsp # Legacy project file (VS 6.0)
|
||||
├── MicroClient.dsw # Legacy workspace file (VS 6.0)
|
||||
├── MicroClient.vcproj # Legacy project file (VS 2008)
|
||||
├── .gitignore # Git ignore rules
|
||||
├── README.md # Main documentation (English)
|
||||
└── LICENSE # License file
|
||||
|
||||
```
|
||||
|
||||
## Key Changes from Original Structure
|
||||
|
||||
### Organization
|
||||
|
||||
- **Source files** moved from root to `src/` directory
|
||||
- **Header files** moved from root to `include/` directory
|
||||
- **Documentation** moved to `docs/` directory
|
||||
- **Resources** reorganized in `res/` directory (lowercase)
|
||||
|
||||
### Project Configuration
|
||||
|
||||
- Updated `MicroClient.vcxproj` to reference new file locations
|
||||
- Added `include` directory to Additional Include Directories
|
||||
- Updated `MicroClient.vcxproj.filters` to match new structure
|
||||
|
||||
### New Files
|
||||
|
||||
- **README.md**: Comprehensive English documentation
|
||||
- **.gitignore**: Excludes build artifacts and temporary files
|
||||
- **docs/STRUCTURE.md**: This file - documents repository organization
|
||||
|
||||
### Removed from Git
|
||||
|
||||
Build artifacts and temporary files (via .gitignore):
|
||||
|
||||
- `*.suo`, `*.user` - User-specific Visual Studio files
|
||||
- `*.aps`, `*.clw`, `*.ncb` - Build cache files
|
||||
- `Debug/`, `Release/` - Build output directories
|
||||
|
||||
## Building the Project
|
||||
|
||||
The project can still be built using:
|
||||
|
||||
- **Visual Studio 2010 or later**: Open `MicroClient.sln`
|
||||
- **Visual Studio 6.0** (legacy): Open `MicroClient.dsw`
|
||||
|
||||
The project files have been updated to automatically find source and header files in their new locations.
|
||||
|
||||
## Core Components
|
||||
|
||||
### Strategy System (`StrategySystem.cpp/h`)
|
||||
|
||||
Main decision-making logic for the robot team:
|
||||
|
||||
- Penalty kicks handling
|
||||
- Free ball (争球) strategy
|
||||
- Ball possession/offensive play
|
||||
- Goalkeeper logic
|
||||
- Dynamic formation management
|
||||
|
||||
### Agent System (`BaseAgent.cpp/h`, `Agentsock.cpp/h`)
|
||||
|
||||
Robot agent framework:
|
||||
|
||||
- Base agent class for robot behavior
|
||||
- Socket communication with simulation server
|
||||
- Real-time data exchange
|
||||
|
||||
### User Interface (`MicroClientView.cpp/h`, `MainFrm.cpp/h`)
|
||||
|
||||
MFC-based graphical interface:
|
||||
|
||||
- Game visualization
|
||||
- Real-time monitoring
|
||||
- Control panel
|
||||
|
||||
### Configuration (`DSetupDlg.cpp/h`)
|
||||
|
||||
Setup and configuration:
|
||||
|
||||
- Connection settings
|
||||
- Team configuration
|
||||
- Strategy parameters
|
||||
|
||||
## Development Guidelines
|
||||
|
||||
### Adding New Files
|
||||
|
||||
**Source files (.cpp)**:
|
||||
|
||||
- Place in `src/` directory
|
||||
- Add to `MicroClient.vcxproj` under `<ItemGroup><ClCompile>`
|
||||
- Add to `MicroClient.vcxproj.filters` under Source Files filter
|
||||
|
||||
**Header files (.h)**:
|
||||
|
||||
- Place in `include/` directory
|
||||
- Add to `MicroClient.vcxproj` under `<ItemGroup><ClInclude>`
|
||||
- Add to `MicroClient.vcxproj.filters` under Header Files filter
|
||||
- Include in source files as: `#include "filename.h"` (include directory is in path)
|
||||
|
||||
**Resources**:
|
||||
|
||||
- Place in `res/` directory
|
||||
- Reference in `MicroClient.rc` as needed
|
||||
|
||||
### Include Path
|
||||
|
||||
The `include/` directory is automatically added to the compiler's include path, so headers can be included directly:
|
||||
|
||||
```cpp
|
||||
#include "StrategySystem.h" // Not #include "include/StrategySystem.h"
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
This project uses a custom Noncommercial No-Derivatives Software License (NCND-Software-1.0).
|
||||
|
||||
- ✅ Free for non-commercial use (education, research, personal)
|
||||
- ✅ Can use and distribute unmodified code
|
||||
- ❌ No commercial use allowed
|
||||
- ❌ No distribution of modified versions
|
||||
|
||||
See [LICENSE](../LICENSE) file for complete terms.
|
||||
|
||||
## Team
|
||||
|
||||
Developed by ATRI (Ace Team of Robotics Intelligence) for the 2024 China Robot Competition & RoboCup China Open.
|
||||
|
||||
- Team Leader: @xixu-me
|
||||
- Members: @XIAOLingQ, @Wx-debug, @moxun333, @song-yaya, @huaxiaoshi, @biqianq, @isWorldEdit
|
||||
Reference in new issue
Block a user