Salut tout le monde , voila en se moment je travaille sur la création et l’exploration d'un arbre N-Aire mais je m'embrouille un peut la :/ Un peut d'aide serai le bienvenue
Voila les code que j'utilise enfin une partie !


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Noeud::Noeud(auto father,int *tabptr , int h , int w)
{
 this->pere=father;  //Pointer Le pére
 for (int i=0 ; i < h ; i++)  //Copier le tableau du dammier
 for (int j=0 ; j < w ; j++)
 {
Casen[j][i]=(int)tabptr[h * j + i];
 }
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Une partie de l'extraction des fils !
case 0:  //Tester Coté droit
      if (Casen[j+1][i+1]==CaseVide ) //deplacement seulement
    {
    auto fils =std::make_unique<Noeud>(this,&(Casen[0][0]),8,8);
    fils->EditCase(i , j , CaseVide);
    fils->EditCase(i+1,j+1,PionAllie);
    this->addChildren(fils);
    }  //Ajouter au noeud fils pointé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
void Noeud::addChildren(std::unique_ptr <Noeud >&child)
{
this->children.push_back(std::move(child));
//Ajouter le fils au neoud pére
}
 
 
Racine = new Noeud(); // dans le constructeur de l'objet jeux dames
 Racine->CopierTableau(&(Case[0][0]),8,8); //Aprés initialisation on copie l'etat initial du jeux
Racine->extractChildren(); //Extraction des enfant
Après cela je bloque pour ajouter la profondeur et la récursivité une idée une orientation serait la bienvenue
Merci D'avance