Algorithme

Accueil Remonter Attributs & méthodes

L'algorithme utilisant la nouvelle définition de la classe caseNB est présenté ici. En JAVA, il tourne dans un Thread séparé pour ne pas bloquer le navigateur.

public void run()
{
int x,y;
y=0;

    int Src = 0;
    if ((ap.m_start<0) || (ap.m_start>64))
        ap.m_start = 0;

    x = ap.m_start;
    ap.Index = 1;
    while (ap.Index < 64) {
        y = ap.caseNB[x].FirstStep(Src,ap.Index);
        if (ap.caseNB[y].IsFree()) {
            Src = x;
            x = y;
            ap.Index += 1;
        } else {
            while (true) {    
                while ((y = ap.caseNB[x].NextStep()) != -1) {
                    if (ap.caseNB[y].IsFree()) {
                        Src = x;
                        x = y;
                        ap.Index += 1;
                        break;
                    }
                } 
                if (y == -1) { 
                    ap.Index -= 1;
                    x = ap.caseNB[x].GetSource();
                } else { 
                    break;
                }
            }
        }
    }
    ap.caseNB[x].FirstStep(Src,ap.Index); // the last
    if (!ap.CheckBoxTR.getState())
    ap.display_chemin();
}

   

L'algorithme de recherche est plus compliqué que dans la version C++ ou BASIC. Par contre, les méthodes de la classe caseNB, dans la version Java  sont beaucoup plus simples.