📄 strategy.cpp
字号:
/**************************************************************************** 文件名称:Strategy.cpp
* 摘 要:该文件部分或全部实现了Strategy.h中所声明的函数。
*
* 当前版本:2.0
* 作 者:李迅
* 完成日期:2005年10月24日
***************************************************************************/
#include "Strategy.h"
#include "Action.h"
// 策略初始化函数
void Strategys::initializtion(const Environment &env)
{
gameCounter++;
// ---------------------- 初始化球 --------------------------
lastBall = ball;
ball.x = env.currentBall.pos.x * CM;
ball.y = env.currentBall.pos.y * CM;
// 坐标转换
if(ourside == BLUE_TEAM)
TransformCoordinate(ball, fd);
// --------------------- 初始化机器人 -----------------------
for(int i = 0; i < PLAYERS_PER_SIDE; i++)
{
// 己方机器人初始化
lastHome[i] = home[i];
home[i].x = env.home[i].pos.x * CM;
home[i].y = env.home[i].pos.y * CM;
home[i].angle = env.home[i].rotation;
// 对方机器人初始化
lastOpponent[i] = opponent[i];
opponent[i].x = env.opponent[i].pos.x * CM;
opponent[i].y = env.opponent[i].pos.y * CM;
opponent[i].angle = env.opponent[i].rotation;
// 坐标转换
if(ourside == BLUE_TEAM)
{
TransformCoordinate(home[i], fd);
TransformCoordinate(opponent[i], fd);
}
}
}
// 给服务器发送本周期数据(机器人轮速)
void Strategys::sendDataToServer(Environment &env) const
{
for(int i = 0; i < PLAYERS_PER_SIDE; i++)
{
env.home[i].velocityLeft = home[i].pwm1;
env.home[i].velocityRight = home[i].pwm2;
}
}
//--------------------------------- 策略 ----------------------------------------------
// 自由球策略
void Strategys::FreeBall()
{
Normal();
//if(自由球条件满足 并且 时间小于一定的周期)
// ......开始执行自由球策略
}
// 开球策略
void Strategys::PlaceKick()
{
Normal();
//if(开球条件满足 并且 时间小于一定的周期)
// ......开始执行开球策略
}
// 点球策略
void Strategys::PenaltyKick()
{
Normal();
//if(点球条件满足 并且 时间小于一定的周期)
// ......开始执行点球策略
}
// 球门球策略
void Strategys::GoalKick()
{
Normal();
//if(球门球条件满足 并且 时间小于一定的周期)
// ......开始执行球门球策略
}
// 任意求策略
void Strategys::FreeKick()
{
//MLS里面不用
Normal();
}
// 一般策略
void Strategys::Normal()
{
Goalie(home[0], ball, fd);
Position1(home[1], ball.x, ball.y);
Rotation2(home[2], 80);
Velocity(home[4], 20, 20);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -