public Joueur jouerPartie(boolean affichage) {
        boolean valide;
        boolean termine = partieTerminee();
        boolean nul = false;

        while (!termine) {
            if (affichage) {
                System.out.println(this.plateau.toString());
            }
            valide = false;
            this.joueurCourant = joueurSuivant();

            while (!valide) {
                Coup c = this.joueurCourant.genererCoup(this.plateau);
                valide = coupValide(c);
                if (valide) {
                    this.plateau.jouer(c);
                } else {
                    if (affichage) {
                        System.out.println("Coup non valide");
                    }
                }
            }

            termine = partieTerminee();
            if (partieNulle()) {
                termine = true;
                nul = true;
            }
        }

        if (nul) {
            if (affichage) {
                System.out.println("Partie Nulle!!");
            }
            return null;
        } else {
            if (affichage) {
                System.out.println("Joueur gagnant:" + this.joueurCourant.toString());
            }
            return this.joueurCourant;
        }
    }