⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formation.h

📁 RoboCup 2D 仿真组冠军源代码之1997年冠军队——CMUnited97源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/* formation.h * CMUnited-97 (soccer client for Robocup-97) * Peter Stone <pstone@cs.cmu.edu> * Computer Science Department * Carnegie Mellon University * Copyright (C) 1997 Peter Stone * * CMUnited-97 was created by Peter Stone and Manuela Veloso * * You may copy and distribute this program freely as long as you retain this notice. * If you make any changes or have any comments we would appreciate a message. */#ifndef _FORMATION_H#define _FORMATION_H#include "position.h"/*************************************************************************//************************ FORMATION DEFINITIONS **************************//*************************************************************************//************************ 4-3-3 Formation ********************************/#define f433_FORMATION       0#define f433_GOALIE           0#define f433_SWEEPER         (f433_GOALIE         +1)#define f433_RIGHT_DEFENSE   (f433_SWEEPER        +1)#define f433_CENTER_DEFENSE  (f433_RIGHT_DEFENSE  +1)#define f433_LEFT_DEFENSE    (f433_CENTER_DEFENSE +1)#define f433_RIGHT_MIDFIELD  (f433_LEFT_DEFENSE   +1)#define f433_CENTER_MIDFIELD (f433_RIGHT_MIDFIELD +1) #define f433_LEFT_MIDFIELD   (f433_CENTER_MIDFIELD+1) #define f433_RIGHT_WING      (f433_LEFT_MIDFIELD  +1) #define f433_CENTER_FORWARD  (f433_RIGHT_WING     +1) #define f433_LEFT_WING       (f433_CENTER_FORWARD +1) /************************ 4-4-2 Formation ********************************/#define f442_FORMATION                 (f433_FORMATION      +1)#define f442_GOALIE                     0#define f442_SWEEPER                   (f442_GOALIE         +1)#define f442_RIGHT_DEFENSE             (f442_SWEEPER        +1)#define f442_CENTER_DEFENSE            (f442_RIGHT_DEFENSE  +1)#define f442_LEFT_DEFENSE              (f442_CENTER_DEFENSE +1)#define f442_RIGHT_MIDFIELD            (f442_LEFT_DEFENSE   +1)#define f442_DEFENSIVE_CENTER_MIDFIELD (f442_RIGHT_MIDFIELD +1) #define f442_OFFENSIVE_CENTER_MIDFIELD (f442_DEFENSIVE_CENTER_MIDFIELD +1) #define f442_LEFT_MIDFIELD             (f442_OFFENSIVE_CENTER_MIDFIELD+1) #define f442_RIGHT_WING                (f442_LEFT_MIDFIELD  +1) #define f442_LEFT_WING                 (f442_RIGHT_WING +1) /************************ 3-5-2 Formation ********************************/#define f352_FORMATION               (f442_FORMATION + 1)#define f352_GOALIE                   0#define f352_SWEEPER                 (f352_GOALIE         +1)#define f352_RIGHT_DEFENSE           (f352_SWEEPER        +1)#define f352_LEFT_DEFENSE            (f352_RIGHT_DEFENSE  +1)#define f352_RIGHT_OUTSIDE_MIDFIELD  (f352_LEFT_DEFENSE   +1)#define f352_RIGHT_INSIDE_MIDFIELD   (f352_RIGHT_OUTSIDE_MIDFIELD   +1)#define f352_CENTER_MIDFIELD         (f352_RIGHT_INSIDE_MIDFIELD +1) #define f352_LEFT_INSIDE_MIDFIELD    (f352_CENTER_MIDFIELD+1) #define f352_LEFT_OUTSIDE_MIDFIELD   (f352_LEFT_INSIDE_MIDFIELD+1) #define f352_RIGHT_WING              (f352_LEFT_OUTSIDE_MIDFIELD  +1) #define f352_LEFT_WING               (f352_RIGHT_WING     +1) /************************ 7-2 Formation ********************************/#define f72_FORMATION               (f352_FORMATION + 1)#define f72_RIGHT_GOALIE             0#define f72_LEFT_GOALIE             (f72_RIGHT_GOALIE   +1)#define f72_RIGHT_DEFENSE           (f72_LEFT_GOALIE    +1)#define f72_CENTER_DEFENSE          (f72_RIGHT_DEFENSE  +1)#define f72_LEFT_DEFENSE            (f72_CENTER_DEFENSE +1)#define f72_RIGHT_OUTSIDE_MIDFIELD  (f72_LEFT_DEFENSE   +1)#define f72_RIGHT_INSIDE_MIDFIELD   (f72_RIGHT_OUTSIDE_MIDFIELD   +1)#define f72_LEFT_INSIDE_MIDFIELD    (f72_RIGHT_INSIDE_MIDFIELD +1) #define f72_LEFT_OUTSIDE_MIDFIELD   (f72_LEFT_INSIDE_MIDFIELD+1) #define f72_RIGHT_WING              (f72_LEFT_OUTSIDE_MIDFIELD  +1) #define f72_LEFT_WING               (f72_RIGHT_WING     +1) /************************ 3-3-4 Formation ********************************/#define f334_FORMATION               (f72_FORMATION + 1)#define f334_GOALIE                   0#define f334_SWEEPER                 (f334_GOALIE         +1)#define f334_RIGHT_DEFENSE           (f334_SWEEPER        +1)#define f334_LEFT_DEFENSE            (f334_RIGHT_DEFENSE  +1)#define f334_RIGHT_MIDFIELD          (f334_LEFT_DEFENSE   +1)#define f334_CENTER_MIDFIELD         (f334_RIGHT_MIDFIELD +1) #define f334_LEFT_MIDFIELD           (f334_CENTER_MIDFIELD+1) #define f334_RIGHT_WING              (f334_LEFT_MIDFIELD  +1) #define f334_RIGHT_INSIDE_FORWARD    (f334_RIGHT_WING     +1) #define f334_LEFT_INSIDE_FORWARD     (f334_RIGHT_INSIDE_FORWARD +1) #define f334_LEFT_WING               (f334_LEFT_INSIDE_FORWARD  +1) /************************ 2-4-4 Formation ********************************/#define f244_FORMATION               (f334_FORMATION + 1)#define f244_GOALIE                   0#define f244_RIGHT_DEFENSE           (f244_GOALIE         +1)#define f244_LEFT_DEFENSE            (f244_RIGHT_DEFENSE  +1)#define f244_RIGHT_MIDFIELD          (f244_LEFT_DEFENSE   +1)#define f244_DEFENSIVE_CENTER_MIDFIELD (f244_RIGHT_MIDFIELD +1) #define f244_OFFENSIVE_CENTER_MIDFIELD (f244_DEFENSIVE_CENTER_MIDFIELD+1) #define f244_LEFT_MIDFIELD             (f244_OFFENSIVE_CENTER_MIDFIELD+1) #define f244_RIGHT_WING              (f244_LEFT_MIDFIELD  +1) #define f244_RIGHT_INSIDE_FORWARD    (f244_RIGHT_WING     +1) #define f244_LEFT_INSIDE_FORWARD     (f244_RIGHT_INSIDE_FORWARD +1) #define f244_LEFT_WING               (f244_LEFT_INSIDE_FORWARD  +1) /************************ 4-3-2 Formation ********************************/#define f432_FORMATION                 (f244_FORMATION      +1)#define f432_RIGHT_GOALIE              0#define f432_LEFT_GOALIE               (f432_RIGHT_GOALIE   +1)#define f432_SWEEPER                   (f432_LEFT_GOALIE         +1)#define f432_RIGHT_DEFENSE             (f432_SWEEPER        +1)#define f432_CENTER_DEFENSE            (f432_RIGHT_DEFENSE  +1)#define f432_LEFT_DEFENSE              (f432_CENTER_DEFENSE +1)#define f432_RIGHT_MIDFIELD            (f432_LEFT_DEFENSE   +1)#define f432_CENTER_MIDFIELD           (f432_RIGHT_MIDFIELD +1) #define f432_LEFT_MIDFIELD             (f432_CENTER_MIDFIELD+1) #define f432_RIGHT_WING                (f432_LEFT_MIDFIELD  +1) #define f432_LEFT_WING                 (f432_RIGHT_WING +1) /************************ RIGHT Formation ********************************/#define fRT_FORMATION                 (f432_FORMATION      +1)#define fRT_GOALIE                    0#define fRT_INSIDE_FULLBACK           (fRT_GOALIE          +1)#define fRT_OUTSIDE_FULLBACK          (fRT_INSIDE_FULLBACK +1)#define fRT_INSIDE_QTRBACK            (fRT_OUTSIDE_FULLBACK+1)#define fRT_OUTSIDE_QTRBACK           (fRT_INSIDE_QTRBACK  +1)#define fRT_INSIDE_HALFBACK           (fRT_OUTSIDE_QTRBACK +1)#define fRT_OUTSIDE_HALFBACK          (fRT_INSIDE_HALFBACK +1)#define fRT_INSIDE_3QTRBACK           (fRT_OUTSIDE_HALFBACK+1)#define fRT_OUTSIDE_3QTRBACK          (fRT_INSIDE_3QTRBACK +1) #define fRT_INSIDE_FORWARD            (fRT_OUTSIDE_3QTRBACK+1) #define fRT_OUTSIDE_FORWARD           (fRT_INSIDE_FORWARD  +1) /************************ LEFT  Formation ********************************/#define fLT_FORMATION                 (fRT_FORMATION      +1)#define fLT_GOALIE                    0#define fLT_INSIDE_FULLBACK           (fLT_GOALIE          +1)#define fLT_OUTSIDE_FULLBACK          (fLT_INSIDE_FULLBACK +1)#define fLT_INSIDE_QTRBACK            (fLT_OUTSIDE_FULLBACK+1)#define fLT_OUTSIDE_QTRBACK           (fLT_INSIDE_QTRBACK  +1)#define fLT_INSIDE_HALFBACK           (fLT_OUTSIDE_QTRBACK +1)#define fLT_OUTSIDE_HALFBACK          (fLT_INSIDE_HALFBACK +1)#define fLT_INSIDE_3QTRBACK           (fLT_OUTSIDE_HALFBACK+1)#define fLT_OUTSIDE_3QTRBACK          (fLT_INSIDE_3QTRBACK +1) #define fLT_INSIDE_FORWARD            (fLT_OUTSIDE_3QTRBACK+1) #define fLT_OUTSIDE_FORWARD           (fLT_INSIDE_FORWARD  +1) /*************************************************************************/#define NUM_FORMATIONS fLT_FORMATION/*************************************************************************//************************ CLASS DEFINITIONS ******************************//*************************************************************************//************************ RECTANGLE CLASS DEFINITION *********************/class Rectangle {public:  void DefineRectangle(float x,float y,float w,float h);  void DefineRectangleFromTLCorner(float x,float y,float w,float h);  inline float TopY()     { return centerY+height/2; }  inline float BottomY()  { return centerY-height/2; }  inline float RightX()   { return centerX+width/2; }  inline float LeftX()    { return centerX-width/2; }  inline float Width()    { return width; }   /* X range */  inline float Height()   { return height; }  /* Y range */  float DistanceToEdge(float x, float y);  int   IsWithin      (float x, float y);  void  AdjustToWithin(float *x, float *y);  void Print();  private:  float centerX;  /* Coordinates of the center */  float centerY;  float width;  float height;};/********************** TEAMPOSITION CLASS DEFINITION *********************//* Types and sides */#define GOALTENDER 1#define DEFENDER   (GOALTENDER + 1)#define MIDFIELDER (DEFENDER   + 1)#define FORWARD    (MIDFIELDER + 1)#define LEFT       1#define CENTER     0#define RIGHT      (-LEFT)/* Use for determining types and sides of positions */#define ROUGH_GOALTENDERX -52#define ROUGH_DEFENDERX   -35#define ROUGH_MIDFIELDERX   0#define ROUGH_FORWARDX     30#define ROUGH_LEFTY        25#define ROUGH_CENTERY       0#define ROUGH_RIGHTY      -25class TeamPosition {public:  TeamPosition();  ~TeamPosition();  void SetHome(float x, float y, float buf);  void SetHomeRange(float width, float height);  void SetMaxRange (float width, float height);  void PrintHomeRange();  void PrintMaxRange();  inline float GetHomeX()      { return HomeX;      }  inline float GetHomeY()      { return HomeY;      }  inline float GetHomeBuffer() { return HomeBuffer; }  inline Rectangle *GetHomeRange() { return HomeRange; }  inline Rectangle *GetMaxRange()  { return MaxRange;  }  inline void SetMaxActiveDistance(float x)  { MaxActiveDistance      = x; }  inline void SetMinInactiveDistance(float x){ MinInactiveDistance    = x; }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -