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

📄 dolly.cpp

📁 AI-CODE坦克机器人 《C++语言学习利器 —AI-CODE坦克机器人》-杜飞雪-源代码
💻 CPP
字号:
#include <airobot/c/SimpleRobot.hpp>
#include <airobot/ commons/Math.hpp>

/**
 * C#例子机器人Dolly,此机器人主要演示了比较有趣的特殊技巧 
*  Dolly这个名字由克隆羊多利的名字而来,他会克隆敌人的运动,而且实现方法简单。
 */
class Dolly: public SimpleRobot {
	private:
 long time;
	//扫描到敌人,往敌人的方向射击
	public:
 void onTick(TickAction* action) {
     Bot* bot = getFirstOpponent();
     if (bot==null) return;

		//shoot
		if (getFirePrepareTime() <= 0) {
			//计算敌人的方向
			double heading = 
Math::atan2(bot->getY() - getY(),bot->getX() - getX());
			//在敌人方向正负40度范围内随机发弹
			fire(heading + rand() * MathUtils::toRadians(80)
					- MathUtils::toRadians(40), 1 + rand() * 2);
		}

		//turn 转到与敌人对称的方向
		double needTurn = MathUtils::anglePI(bot->getHeading() + MathUtils::PI
				- getHeading());
		turn(needTurn);

		//move 与敌人保持速度一样
		move(bot->getVelocity());
		if(getTime() - time > 1){
			println("lost time : " + (getTime() - time));
		}
		time = getTime();
	};
//启动机器人程序
int main(int argC, char* argV[])
{
	Robot* robot = new Dolly();
	return startup(argC, argV, robot);
}

⌨️ 快捷键说明

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