2
* \file morpion_main.cpp
3
* \brief Impl�mentation de la classe morpion_main.
6
#include "morpion_main.hpp"
11
/*---------------------------------------------------------------------------*/
13
* \brief Constructeur. Lance le jeu.
15
morpion_main::morpion_main()
20
std::cout << "Difficult� [1..9] : ";
21
std::cin >> difficulte;
23
std::cout << "Vous commencez ? (o/n) : ";
24
std::cin >> commencer;
26
if ( (commencer=='o') || (commencer=='O') )
27
jouer_humain_premier(difficulte);
29
jouer_ordi_premier(difficulte);
30
} // morpion_main() [constructeur]
34
/*================================== private ================================*/
39
/*---------------------------------------------------------------------------*/
41
* \brief Joue un coup, de l'ordinateur.
42
* \param etat Etat du jeu.
43
* \param difficulte Niveau de difficult�.
44
* \return vrai si la partie est termin�e.
46
bool morpion_main::jouer_ordi(etat_morpion& etat, int difficulte)
48
claw::ai::game::select_random_action< claw::ai::game::alpha_beta<etat_morpion> >
53
select(difficulte, etat, action, true);
55
if (etat.jouer(action))
57
else if (etat.plein())
63
/*---------------------------------------------------------------------------*/
65
* \brief Joue un coup, de l'humain.
66
* \param etat Etat du jeu.
67
* \return vrai si la partie est termin�e.
69
bool morpion_main::jouer_humain(etat_morpion& etat)
76
else if (etat.jouer(c))
78
else if (etat.plein())
84
/*---------------------------------------------------------------------------*/
86
* \brief Lance le jeu, l'humain joue en premier.
87
* \param difficulte Niveau de difficult�.
89
void morpion_main::jouer_humain_premier( int difficulte )
91
etat_morpion etat(EM_CROIX);
92
etat.symbole_ordi(EM_ROND);
94
std::cout << etat << std::endl;
96
bool fini = jouer_humain(etat);
100
std::cout << etat << std::endl;
101
fini = jouer_ordi( etat, difficulte );
105
std::cout << etat << std::endl;
106
fini = jouer_humain(etat);
110
std::cout << etat << std::endl;
111
} // jouer_humain_premier()
113
/*---------------------------------------------------------------------------*/
115
* \brief Lance le jeu, l'ordinateur joue en premier.
116
* \param difficulte Niveau de difficult�.
118
void morpion_main::jouer_ordi_premier( int difficulte )
120
etat_morpion etat(EM_ROND);
121
etat.symbole_ordi(EM_ROND);
123
std::cout << etat << std::endl;
125
bool fini = jouer_ordi( etat, difficulte );
129
std::cout << etat << std::endl;
130
fini = jouer_humain(etat);;
134
std::cout << etat << std::endl;
135
fini = jouer_ordi(etat, difficulte);
139
std::cout << etat << std::endl;
140
} // jouer_ordi_premier()