📄 interceptplan.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 + -