#include <algorithm>
#include "api.hh"

using namespace std;


vector<Position> reperes;

void Debut()
{
    srand(time(0) ^ 0x42);
    
    for (int x = 0; x < TAILLE_TERRAIN; x++)
    {
        for (int y = 0; y < TAILLE_TERRAIN; y++)
        {
            if (Case(x, y) != SIMPLE)
                reperes.push_back(Couple(x, y));
        }
    }
    sort(reperes.begin(), reperes.end());
}


void Construction()
{
    vector<Tourelle> tourelles = Liste_Tourelles(ID);
    
    if (tourelles.empty())
    {
        vector<Position> voisins = Frontiere(Base(ID), PORTEE_CONSTRUCTION);
        
        // Déterminer les cases constructibles autour de la base
        for (size_t index = 0; index < voisins.size(); index++)
            if (!Constructible(voisins[index]))
                voisins.erase(voisins.begin() + index);
        Construire(voisins[Aleatoire(voisins.size())], PORTEE_TOURELLE);
    }
    else
    {
        if (TOUR % 2)
            Creer(MAGIE / COUT_SORCIER);
        else
        {
            
        }
    }
}
