10. 7 Corrigés des exercices
for ( int i= O; i < Size ; i++)
if ( contenuCase [ i] != 0) {
if (( i > 3) && (contenuCase [i - 4) == 0)) {
casePiece [contenuCase [i] ] = i - 4;
}
if (distance [code ()] == distanceCourante )
trouve = true ;
casePiece [ contenuCase [ i]] = i;
if (( i < 1 2) && ( con te n u Case [ i + 4] == 0 ) ) {
casePiece [contenuCase [i]] = i + 4;
}
if (distance [code ()] == distanceCourante )
trouve = true ;
casePiece [ contenuCase [ i]] = i;
i f (( i % 4 ! = 0) && ( conte n u Case [ i - 1 ] == 0 ) ) {
casePiece [ contenuCase [ i]] = i - 1;
}
if (distance [code ()] == distanceCourante )
trouve = true ;
casePiece [ contenuCase [ i]] = i;
185
if ((( i + l) %4 != 0) && (contenuCase [i + 1) -- 0)) {
casePiece [ contenuCase [ i]] = i + l;
}
}
}
i f ( dis tance [ code () ] == distance Courante )
trouve = true ;
casePiece [ contenuCase [ i]] = i;
if (trouve )
distance [code ()] = distanceCourante + l;
return trouve ;
bool engendre ( int piece ) {
bool trouve = fa lse ;
if ( piece == Pieces )
for (int i = O; i < Size ; i++)
contenuCase [ i] = O;
i f ( p i e c e == 0 )
return testeConfiguration ();
for (int i = O; i < Size ; i++)
i f ( contenu Case [ i ] == 0) {
contenuCase [ i] = piece ;
casePiece [ piece ] = i;
}
if (engendre ( piece - l ))
trouve = true ;
contenuCase [ i] = 0;
Précédent

- 199/256

Suivant