Ejemplo n.º 1
0
Action DriveStrategy::makeDecision(ITank &tank, model::World world)
{
    Action action;
    action.setLeft(0);
    action.setRight(0);

    std::vector<model::Bonus> bonuses = world.bonuses();
    if (bonuses.empty())
        return action;
    model::Bonus best = bonuses[0];
    for (int i = 1; i < (int)bonuses.size(); i++)
    {
        model::Bonus cur = bonuses[i];
        if (tank.distanceTo(cur) < tank.distanceTo(best))
            best = cur;
    }
    //std::cerr << "Move to " << best.x() << " " << best.y() << std::endl;
    moveTo(tank, best.x(), best.y(), action);
    return action;
}