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

📄 strategy.h

📁 2002年
💻 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 + -