Mon IA est basee sur plusieurs heuristique

Deja, je n'ai pas trouve de bonne facon de decider quand catalyser et transmuter, donc je transmute des que j'en ai besoin pour pouvoir placer un echantillon, mais aussi si jamais mon adversaire a trop de metal ou peut me menacer avec des catalyseurs.

La catalyse en elle meme n'est pas calculee symetriquement.
Pour catalyser chez moi, je choisis le coup diminuant le plus l'entropie (cf plus bas)
Pour attaquer mon adversaire, je cherche des coupes des composantes connexes en 1 ou deux coups, et je choisis celle qui reduit le plus la somme des carre des tailles. Enfin, j'attaque la composante connexe dans le but d'augmenter l'entropie de mon adversaire.

L'entropie est calculee a partir des adjacences des echantillons. Ceux identiquent la baissent de 2 et ceux distincts l'augmentent de 1.

Pour poser un echantillon, je le place de facon a maximiser un somme lineaire, dont j'ai essaye d'optimiser les coefficients a l'aide d'uine pseudo descente de gradient codee dans optimise.cpp. Si jamais l'echantillon ne peut pas etre place et une transmutation devant etre faite, le type de transmutation et sa taille rentrent en compte (cmp_options)
