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

📄 withballplayondecision.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: Ahmad Boorghany * *  Released on Monday 1 August 2005, 10 Mordad 1384 by Mersad RoboCup Team. *  For more information please read README file.*/#include <Pass.h>#include <Shoot.h>#include <Clear.h>#include <Dribble.h>#include <SRPDribble.h>#include <WithBallPlayOnDecision.h>#include <AdvancedAgent.h>#define CLEAR_NUM 0#define PASS_NUM 1#define SHOOT_NUM 2#define DRIBBLE_NUM 3#define SRPDRIBBLE_NUM 4WithBallPlayOnDecision::WithBallPlayOnDecision(const WorldModel *worldModel):        BodyDecision(worldModel){    addAdvancedAction(new Clear(worldModel),                      AdvancedActionWeights(0, 1, 1), 2);    addAdvancedAction(new Pass(worldModel),                      AdvancedActionWeights(0, 1, 1), 0);    addAdvancedAction(new Shoot(worldModel),                      AdvancedActionWeights(0, 1, 1), 1);    addAdvancedAction(new Dribble(worldModel),                      AdvancedActionWeights(0, 1, 1), 1);    addAdvancedAction(new SRPDribble(worldModel),                      AdvancedActionWeights(0, 1, 1), 0);    initWeights();    dynamic_cast<Pass *>(advancedActions[PASS_NUM])->        setCurKickCalculate(&worldModel->getCurKickCalculate());}WithBallPlayOnDecision::~WithBallPlayOnDecision(){}void WithBallPlayOnDecision::decide(int quickLevel, Form &form, const Library &library){    loadWeights(quickLevel);    form.headForm.tnMode = TNM_LOOK_CAREFULLY;	//	dynamic_cast<Shoot *>(advancedActions[SHOOT_NUM])->//			giveLastDecide(lastDecide);    BodyDecision::decide(quickLevel, form, library);	lastWithBallDecide = command->getCreator();}void WithBallPlayOnDecision::loadWeights(int quickLevel){    weights[SHOOT_NUM].alpha = config["Deciding"]["Shoot"]["Alpha"].asFloat();    weights[SHOOT_NUM].power = config["Deciding"]["Shoot"]["Power"].asFloat();    weights[SHOOT_NUM].rate = config["Deciding"]["Shoot"]["Rate"].asFloat();    weights[DRIBBLE_NUM].alpha = config["Deciding"]["Dribble"]["Alpha"].asFloat();    weights[DRIBBLE_NUM].power = config["Deciding"]["Dribble"]["Power"].asFloat();    weights[DRIBBLE_NUM].rate = config["Deciding"]["Dribble"]["Rate"].asFloat();    if (quickLevel == 0)    {        weights[PASS_NUM].alpha = config["Deciding"]["Pass"]["Alpha"].asFloat();        weights[PASS_NUM].power = config["Deciding"]["Pass"]["Power"].asFloat();        weights[PASS_NUM].rate = config["Deciding"]["Pass"]["Rate"].asFloat();        weights[SRPDRIBBLE_NUM].alpha = config["Deciding"]["SRPDribble"]["Alpha"].asFloat();        weights[SRPDRIBBLE_NUM].power = config["Deciding"]["SRPDribble"]["Power"].asFloat();        weights[SRPDRIBBLE_NUM].rate = config["Deciding"]["SRPDribble"]["Rate"].asFloat();    }    else    {        weights[PASS_NUM].alpha = config["Deciding"]["QuickPass"]["Alpha"].asFloat();        weights[PASS_NUM].power = config["Deciding"]["QuickPass"]["Power"].asFloat();        weights[PASS_NUM].rate = config["Deciding"]["QuickPass"]["Rate"].asFloat();        weights[SRPDRIBBLE_NUM].alpha = config["Deciding"]["QuickSRPDribble"]["Alpha"].asFloat();        weights[SRPDRIBBLE_NUM].power = config["Deciding"]["QuickSRPDribble"]["Power"].asFloat();        weights[SRPDRIBBLE_NUM].rate = config["Deciding"]["QuickSRPDribble"]["Rate"].asFloat();    }}void WithBallPlayOnDecision::initWeights(){    config.add("Deciding");    config["Deciding"].setByFile("./Configs/DecidingWeights.conf");}ActionType WithBallPlayOnDecision::getLastWithBallDecide() const{    return lastWithBallDecide;}

⌨️ 快捷键说明

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