c'est pas spécifique à java, fait des recherches tu trouveras plein de choses
déjà comme truc de base on peut imaginer un arbre de jeu, avec un nombre de points selon les coups effectués, le meilleur chemin étant celui qui rapporte le plus de points...