/**
* Name:Triangle(遇到墙可能会不精确,得考虑坦克开始的位置,没有加入开始移动到某点)
* Written by pt
* Compiler:Microsoft Visual C++
*/
#include <airobot/c/SimpleRobot.h>
#define TURN_ANGLE toRadians(120)
//移动的次数
int index;
//移动速度
double moveVelocity;
double headingTo;
/**
* 每个单位时间都会触发
*/
void onTick(struct TickAction* action)
{
double angle = bearing(headingTo, getHeading());
if (fabs(angle) < 0.0001)
{
//判断是否运动了50次
if (index<50)
{
//移动
turn(0);
move(moveVelocity);
index++;
}
else //角度+120度
headingTo += TURN_ANGLE;
}
else
{
//每次移动10度直到移动120度,又进入if,开始移动
move(0);
turn(angle);
index = 1;
}
}
/**
* 当开始一轮新的比赛时触发
*/
void onRoundBegin(struct RoundBeginAction* action)
{
index = 1;
moveVelocity = 5;
headingTo = 0;
}
/**
* 机器人程序入口
*/
int main(int argC, char* argV[])
{
tickHook = onTick;
roundBeginHook = onRoundBegin;
return startup(argC, argV);
}
(AI-TANK)走三角形
最新推荐文章于 2022-03-08 15:40:39 发布