//* //Code en c++ d'un morpion. //Le jeu s'arrete quand �galit� ou quand l'un des joueurs gagne //Il peut y avoir un probl�me lorsqu'un l'un des joueurs gagne... //Tr�s mal optimiser. //* #include #include using namespace std; struct Grille { vector > g; char CROIX; char ROND; }; void initialise(Grille &m , char c , char r) { m.CROIX = c; m.ROND = r; vector > M(3 , vector (3)); m.g = M ; for(int i = 0 ; i < 3 ; i++) //ligne { for(int j = 0 ; j < 3; j++) //colonne { m.g[i][j] = 'A' ; } } } void affiche(Grille &m) { for(int i = 0 ; i < 3 ; i++) //ligne { for(int j = 0 ; j < 3; j++) //colonne { if(m.g[i][j] == 'A') { cout << " "; }else { cout << m.g[i][j];} if(j != 2) cout << "|"; } if(i !=2) cout <> c; if(c == 1 and m.g[2][0] == 'A'){m.g[2][0] = a;} else if(c == 2 and m.g[2][1] == 'A'){m.g[2][1] = a;} else if(c == 3 and m.g[2][2] == 'A'){m.g[2][2] = a;} else if(c == 4 and m.g[1][0] == 'A'){m.g[1][0] = a;} else if(c == 5 and m.g[1][1] == 'A'){m.g[1][1] = a;} else if(c == 6 and m.g[1][2] == 'A'){m.g[1][2] = a;} else if(c == 7 and m.g[0][0] == 'A'){m.g[0][0] = a;} else if(c == 8 and m.g[0][1] == 'A'){m.g[0][1] = a;} else if(c == 9 and m.g[0][2] == 'A'){m.g[0][2] = a;} else { cout << "ERROR" << endl << endl; } }while(c!= 1 && c!= 2 && c!= 3 && c!= 4 && c!= 5 && c!= 6 && c!= 7 && c!= 8 && c!= 9); } bool full(Grille &m) { int compteur = 0; bool a = false; for(int i = 0 ; i < 3 ; i ++ ) { for(int j = 0 ; j < 3 ; j++) { if(m.g[i][j] == 'X' or m.g[i][j] == 'O') compteur ++; } } if(compteur == 9 ) { a = true ; cout << "EGALITE ! alle salut !" << endl << endl; } return a ; } int main(){ Grille m; unsigned int menu; cout << "Morpion" << endl << "By Shaddo" << endl << endl; do{ cout << endl << endl; cout << "1.Nouvelle partie" << endl; cout << "2.Comment jouer ?" << endl; cout << "3.Quitter" << endl; cin >> menu ; if(menu == 1) { initialise(m,'X' ,'O'); do{ affiche(m); if(!full(m)) { cout << endl << endl; cout << "Joueur X: " << endl << endl; placement(m,m.CROIX); affiche(m); } if(!full(m) or !gagne(m)) { cout << endl << endl; cout << "Joueur O " << endl << endl; placement(m,m.ROND); } }while(!gagne(m) and !full(m)); } else if(menu == 2) { cout << endl <