One of my fonctions on the TicTacToe game in C++ : I have a little problem with the fonction " JOUER ".
It's been a few days I'm working on it, but I can't see the problemS. 
I guess, there are a few (or a lot) of them. 
Here is te code:
***********************************************************
#include <iostream>

	using namespace std;

	enum etat { victoire, continuer, null };
	
	int qntMouv = 0;

	class TicTacToe {
				
	public:
		
	TicTacToe();
	
	etat etatJeux ();
	
	void affichTab() const ;      
	
	bool getXOMouv (char symbolMouv);
	
	bool mouvValid (int x, int y) const;
	
	void recommence ();
	
	void game(); 
			
	private:
		
	char tableau[3][3];
			
	}; // fin classe TicTacToe
		
	TicTacToe::TicTacToe() 
	{
			
	for(int i = 0; i < 3; i++)

	for(int j = 0; j < 3; j++)

 	tableau[i][j] = ' ';  
	 
	qntMouv = 0;   // le tableau  est vide 
 		
	} // fin constructeur TicTacToe
 

	void jouer () {
		
	int joueur = 1, x, y;
	
	int tableau[x][y]; 

	char reponse;
				
		while (reponse == 'O' || reponse =='o') {
			
				TicTacToe::affichTab();
			
					if (etatJeux == continuer) 
		
								{
									
								joueur = (joueur % 2) ? 1 : 2;
							
								if (joueur == 1) ? 'X' : 'O';
							
								cout << " Joueur " << joueur << " Tappez la ligne:  ";
							
								cin >> x;
								
								cout << " Joueur " << joueur << " Tappez la colomne:  ";
								
								cin >> y;
								
								getXOMouv();
								
								mouvValid();
								
								joueur++;
					
								} // fin if
					
					
					else if ( mouvValid == 0 )
					{
						cout<<" Movement n'est pas valide' ";
			
						joueur--;
			
						getXOMouv();
			
			
					
					else if (etatJeux==victoire)
					
					cout<<"\a Joueur "<< --joueur<<" est le gagnant ";
					
					
					else
					
						cout<<"\a Null";
					
						return 0;			
		
				
				} // fin boucle while
				
				cout<< " Vouez-vous continuer? ( O / N )" << endl;
				
				cin >> reponse ;
				
				recommence () ;
						
	} // fin void jouer                                     


	void TicTacToe::affichTab() const  {
				
	cout<<endl;cout<<endl;
	cout << "  *****Col 1"<<"**Col 2"<<"**Col 3"<<endl;	
	cout<< endl;
 	cout <<"**Lig 1"<<tableau[0][0]<< "____|"<<tableau[0][1]<<"____|"<<tableau[0][2]<<"____"<<endl;
 	cout<<endl;

	cout <<"**Lig 2"<<tableau[1][0]<< "____|"<<tableau[1][1]<<"____|"<<tableau[1][2]<<"____"<<endl;
	cout<<endl;	
			
	cout <<"**Lig 3"<<tableau[2][0]<< "____|"<<tableau[2][1]<<"____|"<<tableau[2][2]<<"____"<<endl;
	cout<<endl; 
	 	 	
	} // fin affichTab
	
	bool TicTacToe::mouvValid (int x, int y) const{
				
		int lig, col;
		
		if  ( lig >= 0 && lig <= 2  && col >=0 && col <= 2 &&  tableau[x] [y] == ' ' )
			return true;
					
		else return false;
	
	} // fin du bool mouvValid

	bool TicTacToe::getXOMouv (char symbolMouv)   {
		
	     qntMouv++;

		if ( symbolMouv == 'X')
		{
		symbolMouv = 'O';	
		
		return true;
		} // fin if
		      
		else
		{
		symbolMouv = 'X';
		
		return false;
		
		} // fin else	
			
	} // fin du bool getXOMouv
		
	   etat TicTacToe::etatJeux () {
					
if  ((tableau[0][0]) && (tableau[1][0]) && (tableau[2][0]))  return victoire; //colomne
		
	else if ((tableau[0][1]) && (tableau[1][1]) && (tableau[2][1])) return victoire; //colomne
	
			else if ((tableau[0][2]) && (tableau[1][2]) && (tableau[2][2])) return victoire;  // colomne
				
				else if((tableau[0][0] ) && (tableau[0][1] ) && (tableau[0][2]))return victoire;  // lignme 
				
					else if ((tableau[1][0]) && (tableau[1][1]) && (tableau[1][2])) return victoire;  // ligne
						
							else if ((tableau[2][0]) && (tableau[2][1]) && (tableau[2][2])) return victoire;  // ligne
								
									else if ((tableau[0][0]) && (tableau[1][1]) && (tableau[2][2])) return victoire; // diago
									
											else if ((tableau[0][2]) && (tableau[1][1]) && (tableau[2][0])) return victoire; // // diago
																						
												else if (qntMouv < 9) return continuer;
																								
													 return null;
													
	} // fin  etatJeux
	
	void TicTacToe::recommence () {
				
	qntMouv = 0;
	
	for(int i = 0; i < 3; i++)

	for(int j = 0; j < 3; j++)

 	tableau[i][j] = ' '; 
 	
 		
	
	}  // fin reccomence
	              	          
                       
	int main () {
		
	TicTacToe game;
	
	game.affichTab(); 
		
	return 0;	
	
	} // fin du main du programme 