?? cppconst.h
字號(hào):
#ifndef CPPCONST_H
#define CPPCONST_H
#include "Geometry.h"
const double PI = 3.14159265359;
// --------------Game--------------------------
const int CROBOTNUM = 5; // 每個(gè)隊(duì)的機(jī)器人數(shù)
const int CMATCHTIME = 3000; // 仿真周期
const int CDEATHTIME = 1000; // 加時(shí)賽仿真周期
const int CJSTIME = 5000; // 決賽仿真周期
const int CCYCLETIME = 100; // 默認(rèn)每周期100毫秒
// ---------------------------------------------
// --------------Robot--------------------------
const double CMAXROBOTV = 1.2; // 球員最大速度
const double CMAXROBOTACC = 1.0; // 球員最大加速度
const double CMAXROBOTDECAY = 0.4; // 球員速度衰減系數(shù)
const double CROBOTSIZE = 0.3; // 機(jī)器人的半徑
const double CKICKABLEMARGIN = 0.7; // 機(jī)器人控球范圍
const double CROBOTPTSIZE = CROBOTSIZE + CKICKABLEMARGIN;
const double CKICKPOWERRATE = 0.027; // 踢球參數(shù)
const double CCATCHABLEMARGIN = 1.5; // 守門員的撲球范圍
const double CCATCHMAXMOMENT = 90; // 守門員撲球的最大夾角
const double CCATCHMINMOMENT = -90; // 守門員撲球的最小夾角
const double CCATCHPROBABILITY = 1.0; // 守門員撲球成功率
const int CCATCHBANCYCLE = 5; // 兩次撲球間隔時(shí)間
const int CMAXCATCHTIME = 2; // 最多連續(xù)撲球次數(shù)
const double CMAXPOWER = 100.0; // 命令最大力量
const double CMINPOWER = -100.0; // 命令最小力量
const double CMAXMOMENT = 180.0; // 命令最大轉(zhuǎn)身角度
const double CMINMOMENT = -180.0; // 命令最小轉(zhuǎn)身角度
const double CINERTIAMOMENT = 5.0; // 轉(zhuǎn)身慣性參數(shù)
const double CSTAMINAMAX = 4000.0; // 球員最大體力值
const double CSTAMINAINCMAX = 45.0; // 球員最大體力恢復(fù)值
const double CDASHPOWERRATE = 0.006; // 球員加速系數(shù)
const double CEFFORTMIN = 0.6; // 球員最小體力效用值
const double CEFFORTMAX = 1.0; // 球員最大體力效用值
const double CEFFORTDECTHR = 0.3; // 球員體力效用系數(shù)
const double CEFFORTDEC = 0.005; // 球員體力效用系數(shù)
const double CEFFORTINCTHR = 0.6; // 球員體力效用系數(shù)
const double CEFFORTINC = 0.01; // 球員體力效用系數(shù)
const double CRECOVERDECTHR = 0.3; // 球員體力恢復(fù)系數(shù)
const double CRECOVERDEC = 0.002; // 球員體力恢復(fù)系數(shù)
const double CRECOVERMAX = 1.0; // 球員體力恢復(fù)系數(shù)
const double CRECOVERMIN = 0.5; // 球員體力恢復(fù)系數(shù)
const double CROBOTRAND = 0.1; // 球員運(yùn)動(dòng)誤差系數(shù)
const double CROBOTSEERANDPOS = 5.0; // 球員感知坐標(biāo)最大噪聲的2倍
const double CROBOTSEERANDVEL = 0.5; // 球員感知速度最大噪聲的2倍
// ---------------------------------------------
// --------------Field--------------------------
const double CDOORWIDTH = 4.0; // 球門一側(cè)是4.0,實(shí)際長(zhǎng)度是2 * 4.0
const double CPNZWIDTH = 20.0; // 大禁區(qū)的寬度
const double CHALFPNZWIDTH= 10.0; // 大禁區(qū)的半寬度
const double CPNZLEN = 10.25;//8.0; // 大禁區(qū)的長(zhǎng)度
const double CSPNZWIDTH = 12.24; // 小禁區(qū)的寬度
const double CHALFSPNZWIDTH = 6.12; // 小禁區(qū)的半寬度
const double CSPNZLEN = 5.2; // 小禁區(qū)的長(zhǎng)度
const double CFLDWIDTH = 34.0; // 場(chǎng)地寬度
const double CHALFFLDWIDTH= 17.0; // 一半場(chǎng)地寬度
const double CFLDLEN = 52.0; // 場(chǎng)地長(zhǎng)度
const double CHALFFLDLEN = 26.0; // 一半場(chǎng)地長(zhǎng)度
const double CDOORY1 = CHALFFLDWIDTH - CDOORWIDTH; // 上門柱
const double CDOORY2 = CHALFFLDWIDTH + CDOORWIDTH; // 下門柱
// ----------------------------------------------
// --------------Ball-----------------------------
const double CMAXBALLV = 2.7; // 球最大速度
const double CMAXBALLACC = 2.7; // 球最大加速度
const double CBALLDECAY = 0.94; // 球速衰減系數(shù)
const double CBALLSIZE = 0.085; // 球的尺寸
const double CBALLRAND = 0.05; // 球的運(yùn)動(dòng)噪聲系數(shù)
// -----------------------------------------------
const double CKICKABLEDIST = CKICKABLEMARGIN + CROBOTSIZE + CBALLSIZE;
const double CCATCHABLEDIST = CCATCHABLEMARGIN + CROBOTSIZE + CBALLSIZE;
// -----------------------------------------------
const double dPlayerWhenToTurnAngle = 7.0; // angle when to turn when moving
// 球的狀態(tài)
enum BallStateT{BS_Normal,BS_LEFT_Goal,BS_RIGHT_Goal};
// 命令種類
enum CommandTypeT{Com_Stay, Com_Turn, Com_Kick, Com_Dash, Com_Catch};
// 命令執(zhí)行結(jié)果
enum CommandResultT{CR_Error,CR_Catch,CR_Normal};
// 比賽狀態(tài)
enum GameStateT{GS_Normal,GS_Goal_Left,GS_Goal_Right,GS_Catch_Left,GS_Catch_Right,GS_Game_End};
enum ObjectTypeT{OT_Ball,OT_Robot};
enum ObjectT{O_Ball,O_Own_1,O_Own_2,O_Own_3,O_Own_4,O_Own_5,O_Ops_1,O_Ops_2,O_Ops_3,O_Ops_4,O_Ops_5,O_Unknow};
enum ObjectSetT
{
OBJECT_SET_TEAMMATES, /*!< teammates */
OBJECT_SET_OPPONENTS, /*!< opponents */
OBJECT_SET_PLAYERS, /*!< players */
OBJECT_SET_TEAMMATES_NO_GOALIE, /*!< teammates without the goalie */
};
// 命令
struct TCommand
{
CommandTypeT CommandType; //命令種類:Stay,Turn,Kick,Dash,Catch
double ComParam0; //命令參數(shù)0
double ComParam1; //命令參數(shù)1
};
/*
Stay : 無(wú)參數(shù)
Turn : ComParam0 : angTurn
Kick : ComParam0 : angKick
ComParam1 : power
Dash : ComParam0 : power
Catch: 無(wú)參數(shù)
*/
typedef struct
{
double x;
double y;
} Vector;
typedef struct
{
Vector pos;
Vector vel;
double dir;
double sta;
double eff;
double rec;
bool bComError;
bool bCarsh;
bool bCatch;
} RobotState;
typedef struct
{
Vector pos;
Vector vel;
bool bCarsh;
} BallState;
typedef struct
{
Vector pos;
Vector vel;
double dir;
} OpsState;
typedef struct
{
int iTeam1Score;
int iTeam2Score;
int iTimeTipCnt;
int iTimeNow;
int iTimeFromGoal;
int iHMPETB;
} MatchState; // 24 Bytes
const unsigned int SIZE_ROBOSTATES = sizeof(RobotState)*CROBOTNUM;
// ---------------------------------------------------------------------
typedef struct{
int team; // 0 -- 1
int num; // 0 -- 4
bool availabe;
}setInfT;
#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -