4.10 Corrigés des exercices
} ;
nbürdre [ i ] = O;
nbürdre [O] = no ;
nbürdre [ 1 ] = n 1;
nbürdre [2] = n2 ;
nbürdre [ 3] = n 3 ;
nbOrdre [4] = n4 ;
}
void ecrete ( int n) {
}
fo r (int i = n; i < Maxürdre ; i++)
nbürdre [i] = O;
int ordre () {
}
fo r (int i = O; i < Maxürdre - 1; i++)
if (nbürdre [i + 1) == 0)
return i;
return Maxürdre - 1;
fr iend ostream & operator << ( ostream & sortie ,
Menace & m) ;
ostream & operator << ( ostream & sortie ,
Menace & m) {
}
sortie << " (" << m. nbürdre [0] << "," <<
m. nbOrdre [ 1] <<
"," << m. nbürdre [2] <<
"," <<
m. nbOrdre [3] << ")";
return sortie ;
On utilise ensuite cette classe Menace pour restreindre la recherche À :
bool lambda ( int joueur , Menace m) {
if ( phutball . gagne (joueur , phutball . balle ))
return true ;
int autre = adversaire (joueur );
if ( phutball . gagne (autre , phutball . balle ))
return false ;
list listeCoups , listeCoupsAdverses ;
if ( phutball . coupsLegaux (0 , joueur , listeCoups ))
return true ;
int n =m . ordre ();
phutball .coupsLegaux (n , joueur , listeCoups );
if ( n == 0)
return false ;
for ( list:: iterator it = listeCoups . begin ();
85
} ;
nbürdre [ i ] = O;
nbürdre [O] = no ;
nbürdre [ 1 ] = n 1;
nbürdre [2] = n2 ;
nbürdre [ 3] = n 3 ;
nbOrdre [4] = n4 ;
}
void ecrete ( int n) {
}
fo r (int i = n; i < Maxürdre ; i++)
nbürdre [i] = O;
int ordre () {
}
fo r (int i = O; i < Maxürdre - 1; i++)
if (nbürdre [i + 1) == 0)
return i;
return Maxürdre - 1;
fr iend ostream & operator << ( ostream & sortie ,
Menace & m) ;
ostream & operator << ( ostream & sortie ,
Menace & m) {
}
sortie << " (" << m. nbürdre [0] << "," <<
m. nbOrdre [ 1] <<
"," << m. nbürdre [2] <<
"," <<
m. nbOrdre [3] << ")";
return sortie ;
On utilise ensuite cette classe Menace pour restreindre la recherche À :
bool lambda ( int joueur , Menace m) {
if ( phutball . gagne (joueur , phutball . balle ))
return true ;
int autre = adversaire (joueur );
if ( phutball . gagne (autre , phutball . balle ))
return false ;
list
if ( phutball . coupsLegaux (0 , joueur , listeCoups ))
return true ;
int n =m . ordre ();
phutball .coupsLegaux (n , joueur , listeCoups );
if ( n == 0)
return false ;
for ( list
85
