int IsBoss(double d,Position des)//判断下一时刻会不会碰到boss { int flag=0; Position Next=Add(me.pos,Multiple(5,MaximumSpeed(speed))); if (dist(Next,des)<d) flag=1; return flag; }
int IsDevour(double d,Position des)//判断下一时刻会不会碰到吞噬者 { int flag=0; Position Next; for(int i=1;i<=8;i++) { Next=Add(me.pos,Multiple(i,MaximumSpeed(speed))); if (dist(Next,des)<d) flag=1; } return flag; }
SteamScene::SteamScene(CherEngine::Game& game) : IScene(game) { for (float angle = kMinAngle; angle <= kMaxAngle; angle += (0.5f * Deg2Rad)) { const auto minSpeed = MinimumSpeed(angle); const auto maxSpeed = MaximumSpeed(angle); for (float speed = minSpeed; speed <= maxSpeed; speed += 1.0f) { _solutions.push_back({ 0, angle, speed, MaximumDistance(speed, angle) }); } } }
void AIMain() { if (GetStatus() -> team_id) { /*Vector speed2={100,100,100}; Move(GetStatus()->objects[0].id,speed2);*/ return; } srand(time(0)); for(;;){ //if (abs(GetTime()-1000)<=5 || me.health>10000) //printf("time=%d\thealth=%d\tability=%d\n",GetTime(),me.health,me.ability); Init(); speed=MaximumSpeed(speed); Move(me.id,speed); Strategy(); } }