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

📄 interceptplan.cpp

📁 RoboCup 2D 仿真组老牌强队Mersad 2005的完整源代码
💻 CPP
字号:
/* *  Copyright 2002-2005, Mersad Team, Allameh 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. * *  This file is created by: Sassan Haradji, Ahmad Boorghany * *  Released on Monday 1 August 2005, 10 Mordad 1384 by Mersad RoboCup Team. *  For more information please read README file.*/#include <BasicDash.h>#include <AdvancedAgent.h>#include <InterceptPlan.h>#include <Logger.h>#include <cassert>using namespace std;InterceptPlan::InterceptPlan(const WorldModel *wm, Form &form,		const Library &library): Plan("Intercept", wm, form, library),		intercept(wm), dribbleIntercept(wm), finished(false), getVal(false){}InterceptPlan::~InterceptPlan(){}void InterceptPlan::decide(){	LOG << "InterceptPlan::decide" << endl;/*	form.headForm.tnMode = TNM_AUTO_PLAY_ON;	if (wm->getBody().getDistance(wm->getBall()) < 7)		form.headForm.tnMode = TNM_LOOK_CAREFULLY;	if (wm->getBody().getDistance(wm->getBall()) < 14)		form.headForm.tnMode = TNM_LOOK_NORMALLY;*/	finished = true;	if ((library.lastBodyCycleCommand->getCreator() == AT_DRIBBLE ||		 library.lastBodyCycleCommand->getCreator() == AT_SRPDRIBBLE ||		 library.lastBodyCycleCommand->getCreator() == AT_DRIBBLE_INTERCEPT) &&		dribbleIntercept.getValue(library) == AD_ALWAYS_RUN_VALUE)	{		dribbleIntercept.execute(form, library);		throw dribbleIntercept.getCommand();	}	else	{		if (!getVal || valSetCycle != wm->getCurCycle())			value = intercept.getValue(library) - 20;		valSetCycle = wm->getCurCycle();		getVal = true;		intercept.execute(form, library);		throw intercept.getCommand();	}	LOG << "InterceptPlan Now Kill Program" << endl;	assert(0);}double InterceptPlan::successRate(){	if (!getVal || valSetCycle != wm->getCurCycle())		value = intercept.getValue(library);	valSetCycle = wm->getCurCycle();	getVal = true;	if (value < -200) return 0;	return value / 1000 + .2;}bool InterceptPlan::isFinished(){	if (/*library.gwSelection == WOBS_INTERCEPT && */!wm->isBallKickable())		return finished;	return true;}

⌨️ 快捷键说明

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