Plusieurs optimisations peuvent être apportées, notamment sur la détection des coups jouables ainsi que sur la réutilisation de portions de code déjà existantes qui comportent la même structure mais utilisées à des fins différentes.
Dans le cas d'une partie Homme-Ordinateur, il nous faut implémenter une stratégie qui permette, pour décider du meilleur coup coté "computer", de maximiser la victoire de la machine. Pour cela, nous utilisons l'algorithme "NegaMax" qui consiste à calculer, en partant de l'état courant du plateau, l'arbre de tous les prochains coups possibles. Une fois cet arbre généré par l'algorihtme, le choix du coup "machine" correspondra à la feuille (dernier noeud de l'arbre) qui contient le gain maximal en termes de pions gagnés parmi toutes les autres feuilles existantes dans l'arbre. On comprend alors aisément que plus la profondeur de l'arbre est grande (c'est-à-dire le nombre de coups calculés à l'avance), plus le coup choisi sera pertinent au niveau de l'heuristique.
ps : contribuez comme moi au projet Cosmology@Home dont le but est d'affiner le modèle décrivant le mieux notre Univers.