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.
6.2 KiB
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.vcxprojto reference new file locations - Added
includedirectory to Additional Include Directories - Updated
MicroClient.vcxproj.filtersto 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 filesDebug/,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.vcxprojunder<ItemGroup><ClCompile> - Add to
MicroClient.vcxproj.filtersunder Source Files filter
Header files (.h):
- Place in
include/directory - Add to
MicroClient.vcxprojunder<ItemGroup><ClInclude> - Add to
MicroClient.vcxproj.filtersunder Header Files filter - Include in source files as:
#include "filename.h"(include directory is in path)
Resources:
- Place in
res/directory - Reference in
MicroClient.rcas needed
Include Path
The include/ directory is automatically added to the compiler's include path, so headers can be included directly:
#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 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