84
Recherche avec menaces
}
phutball . coupsLegaux (ordre , joueur , listeCoups );
for (list:: iterator it = listeCoups .begin ();
}
i t ! = l i s te Co u p s . end () ; ++ i t ) {
phutball . joue (* it );
bool menaceVerifiee = false ;
for (int o = O; (o < ordre ) && !menaceVerifiee ; o++)
if (lambda (joueur , o))
menaceVerifiee = true ;
bool gagneVerifie = false ;
if ( menaceVerifiee )
if ( ! phutball . coupsLegaux (autre ,
listeCoupsAdverses ))
for ( int o = O; o <= ordre ; o++) {
gagneVerifie = true ;
}
fo r ( list: : iterator itl =
listeCoupsAdverses . begin ();
(itl != listeCoupsAdverses .end ()) &&
}
g a g n e V e r i fi e ; ++ i t 1 ) {
phutball .joue (* itl );
if (!lambda (joueur , o))
gagneVerifie = fa lse ;
phutball . dejoue (* it l );
if (ga gneVerifie)
break ;
phutball . dejoue (* it );
if ( gagneVerifie)
return true ;
return false ;
4.10.7 Lambda limitée
On commence par écrire une classe pour représenter les menaces limitées :
const int MaxOrdre = 5;
class Menace {
public :
int nbOrdre [MaxOrdre ];
Menace (int nO = 0, int nl = 0, int n2 = 0, int n3 = 0,
in t n4 = 0) {
for (int i = O; i < MaxOrdre ; i++)
Recherche avec menaces
}
phutball . coupsLegaux (ordre , joueur , listeCoups );
for (list
}
i t ! = l i s te Co u p s . end () ; ++ i t ) {
phutball . joue (* it );
bool menaceVerifiee = false ;
for (int o = O; (o < ordre ) && !menaceVerifiee ; o++)
if (lambda (joueur , o))
menaceVerifiee = true ;
bool gagneVerifie = false ;
if ( menaceVerifiee )
if ( ! phutball . coupsLegaux (autre ,
listeCoupsAdverses ))
for ( int o = O; o <= ordre ; o++) {
gagneVerifie = true ;
}
fo r ( list
listeCoupsAdverses . begin ();
(itl != listeCoupsAdverses .end ()) &&
}
g a g n e V e r i fi e ; ++ i t 1 ) {
phutball .joue (* itl );
if (!lambda (joueur , o))
gagneVerifie = fa lse ;
phutball . dejoue (* it l );
if (ga gneVerifie)
break ;
phutball . dejoue (* it );
if ( gagneVerifie)
return true ;
return false ;
4.10.7 Lambda limitée
On commence par écrire une classe pour représenter les menaces limitées :
const int MaxOrdre = 5;
class Menace {
public :
int nbOrdre [MaxOrdre ];
Menace (int nO = 0, int nl = 0, int n2 = 0, int n3 = 0,
in t n4 = 0) {
for (int i = O; i < MaxOrdre ; i++)
