📄 strategy.h
字号:
#ifndef __STRATEGY_H__
#define __STRATEGY_H__
#include "geometry.h"
#include "command.h"
#include "bpn.h"
#include "player.h"
const int MAXBALLCONTROLLERS = 5;
const int CP_max_hearmodes = 5;
class Situation{
private:
/*for updating play mode*/
int num_hearmodes;
PlayMode heardmode[CP_max_hearmodes];
bool IT_continue;
void ForgetAll();
public:
Situation();
Time CurrentTime;
Time LastInterruptTime;
Time LastCycle();
bool ClockStopped;
Time ClockStoppedTime;
PlayMode playmode;
KickOff_Mode kickoff_mode;
bool IsGoalieKick;
int MyScore;
int TheirScore;
char MySide;
char TheirSide;
/****************************************************************/
void HearMode(PlayMode playemode);
void SetPlayMode(PlayMode playmode);
void OnChangeMode(PlayMode playmode);
void UpdateScore(char Side);
void SetKickOffMode(KickOff_Mode);
void UpdateTime(Time time);
void UpdateMode();
/*********** Control of the ball *******************/
UNum My_Ballcontrollers[MAXBALLCONTROLLERS];
UNum Their_Ballcontrollers[MAXBALLCONTROLLERS];
int num_my_ballcontrollers;
int num_their_ballcontrollers;
int num_ballcontrollers;
float conf_of_control;
UNum ballcontroller;
UNum most_promising_controller;
Vector next_interception_point;
float min_IT_cycles;
float Team_Control;
bool Ballwithincontrol(char side, UNum No);
bool BallFree;
float NoiseBallFree;
bool IsControllerOrFutureController(char side, UNum No);
bool IsControllerOrFutureController(UNum No);
Vector NextControlBallPos();
/******* judge situation *****************/
bool IsAttack;
void JudgeSituation();
SP_State SetPlayState;
GameState gamestate;
void LogGameState();
Time SightTime;
Time ModeChangedTime;
bool IsSetPlay(){return bool(SetPlayState != SPST_AfterExec);}
bool IsSetPlayState(SP_State state){return bool(SetPlayState == state);}
void ChangeSetPlay(SP_State state){SetPlayState = state;}
};
class Formation{
private:
//for BP use
double input[4];
double output[2];
public:
Formation();
Vector GetOffensivePoint(float attackness, float leftness, Vector ballpos);
Vector GetDefensivePoint(const Role& role, Vector ballpos);
Vector GetDefensivePoint(float attackness, float leftness, Vector ballpos);
Vector GetFormationPoint(const Player& player);
Vector GetFormationPoint();
BPN FMOffenseNet;
BPN FMDefenseNet;
void SetFormation();
};
#endif //__STRATEGY_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -