Boucle de recherche

Accueil Remonter Attributs & méthodes

Algorithme final

L'algorithme de recherche est écrit ici en C++. C'est la version finale d'une série d'améliorations, introduites progressivement pendant le développement. Il peut facilement être repris dans un autre langage (Basic, java, ...). Il a d'ailleurs été mis au point en Visual Basic. Un tableau de classes (au sens C++) "caseNB" de 64 éléments représente l'échiquier. 

 

UINT lance( LPVOID start )
{
int x,y,orig;

x = *(int *)start;  // départ
y=0;

    while (caseNB[x].Index < BUT) {             // BUT = 64
        if (true == caseNB[x].CanIStep(y)) {    
            orig = x;
            x = caseNB[x].destination;
            caseNB[x].Step (orig);
            y = 0;
        } else {
            caseNB[x].clear_affiche();
            caseNB[x].free = true;
            x = caseNB[x].origine;
            while (caseNB[x].blocage())
                x = caseNB[x].origine;
            y = caseNB[x].contrainte + 1;
        }
     } 
}     

Les attributs et les méthodes de la classe caseNB et le principe de recherche sont indiqués dans Attributs et méthodes