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

📄 pass.h

📁 mersad源码 03年robocup 季军 可以研究一下大家
💻 H
字号:
/* *  Copyright 2002-2004, Mersad Team, Allame Helli High School (NODET). * *  This program is free software, you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *  GNU Library General Public License for more details. * *  Created by: Ahmad Boorghany *  Released on Friday 1 April 2005 by Mersad RoboCup Team. *  For more information please read README file.*/#ifndef __PASS_H#define __PASS_H#include <Dribble.h>#include <AdvancedAction.h>#define CROSS_DIR_STEP 5.00#define CROSS_DIR_NUM 12#define CROSS_CENTER_POINT Point(45, 0)#define CROSS_CALCULATES_NUM CROSS_DIR_NUM#define CROSS_PERMITTED_X 30#define MIN_PASS_DIST 2#define MAX_FACTORS_NUM 4#define PASS_OFFSIDE_DELTA_DIST (-2)#define SUGGEST_REAL_DELTA_WEIGHT (-6)enum PassModel{	PAM_CROSS,	PAM_CROSS_SPECIAL,	PAM_OFFENSE,	PAM_SECURE_BALL,	PAM_BREAK_OFFSIDE,	PAM_SUGGESTED,	PAM_KICK_OFF};struct PassWeightFactor{	float minValue;	float maxValue;	float minWeight;	float maxWeight;};struct PassFactors{	PassWeightFactor posDev;	PassWeightFactor offense;	PassWeightFactor seeInfo;	PassWeightFactor ballDist;	PassWeightFactor dashDist;	PassWeightFactor breakOffside;	PassWeightFactor passedOppNum;	PassWeightFactor statusOppNum;	PassWeightFactor securityDeltaCycle;	PassWeightFactor statusOppDist;	PassWeightFactor statusOppDir;	PassWeightFactor statusShoot;	PassWeightFactor dribblePath;	PassWeightFactor defenseLine;	PassWeightFactor extraCatch;};class CrossCalculate: public KickCalculate{public:	virtual ~CrossCalculate();	void init();	void update(const WorldModel *worldModel);};class Pass: public AdvancedAction{protected:	// global pass vars	float crossRate;	float crossAlpha;	float offenseRate;	float offenseAlpha;	float secureBallRate;	float secureBallAlpha;	float breakOffsideRate;	float breakOffsideAlpha;	unsigned logLevel;	float offenseValues[KICK_CALCULATES_NUM];	float secureBallValues[KICK_CALCULATES_NUM];	float breakOffsideValues[KICK_CALCULATES_NUM];	float crossValues[KICK_CALCULATES_NUM + CROSS_CALCULATES_NUM];	unsigned offenseMaxer;	unsigned secureBallMaxer;	unsigned breakOffsideMaxer;	unsigned crossMaxer;	PassFactors crossFactors;	PassFactors offenseFactors;	PassFactors secureBallFactors;	PassFactors breakOffsideFactors;	DribblePath dribblePath;	CrossCalculate *crossCalculate;	const KickCalculate *curKickCalculate;	// the best pass informations	float passValue;	PassModel passModel;	KickCommand *passCommand;	const Player *passPlayer;	const KickInterceptCalculate *passInterCalc;	void fillValues();	void resetValues();	void fillMaxValues();	void applyGlobalVars();	void loadPassFactors();	void applyNoiseValues();	void calculateGlobalVars();	void fillPassValuesByFactors(const KickCalculate &kickCalc,			const PassFactors **factors,			float *valuesList[], unsigned num = 1);	void fillOnePassValuesByFactors(const KickInterceptCalculate &interCalc,			const PassFactors **factors,			float *valuesList[], unsigned num = 1);	void fillOtherCrossValuesByFactors(const CrossCalculate &crossCalc,			const PassFactors &factors, float values[]);	float getTheBestPass(const KickInterceptCalculate *&interCalc);	float getPlanWeight(unsigned kickerNum, unsigned passNum,			const Point &kickPoint);public:	Pass(const WorldModel *worldModel, bool dontCreateCrossCalc = false);	virtual ~Pass();	static float getShootDirValue(const Point &point,			const WorldModel *worldModel);	virtual void execute(SayDecisionFlags &sayFlags);	virtual float getValue();	virtual DecideType getType();	// getting functions	float getPassValue() const;	PassModel getPassModel() const;	const Player *getPassPlayer() const;	const KickInterceptCalculate *getPassInterCalc() const;	// setting functions	void setCurKickCalculate(const KickCalculate *curKickCalculateArg);};#endif // __PASS_H

⌨️ 快捷键说明

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