/** Verifie si un des deux joueurs gagne la partie */
 public void verifiegagner() {
   Joueur j;
   if (this.verifieEquipeKO(joueur1)) j = joueur2;
   else if (this.verifieEquipeKO(joueur2)) j = joueur1;
   else j = null;
   if (j != null) {
     JOptionPane.showMessageDialog(
         null,
         "Bravo le joueur " + j.getNom() + " a gagner la partie",
         "Fin de la Partie",
         JOptionPane.NO_OPTION,
         new ImageIcon("image/gagner.png"));
     Object[] options = {"Recommencer une nouvelle partie", " Quitter le jeu"};
     int confirm =
         JOptionPane.showOptionDialog(
             null,
             "Que voulez vous faire ?",
             "Quitter le jeu",
             JOptionPane.YES_NO_OPTION,
             JOptionPane.QUESTION_MESSAGE,
             null,
             options,
             options[1]);
     if (confirm == 1) {
       System.exit(0);
     } else if (confirm == 0) {
       ihmjeu.dispose();
       new Jeu();
     }
   }
 }
 /**
  * Voir les informations des personnages sur les bandeaux des joueurs
  *
  * @param positionCaseSelectionné position de la case selectionné
  */
 public void voirInfoPersonnage(int[] positionCaseSelectionné) {
   Personnage p = plateau.caseGetPersonnage(positionCaseSelectionné);
   if (p != null) {
     if (joueur1.possedePersonnage(p)) ihmjeu.getBandeau1().getInfo().miseAJour(p);
     else if (joueur2.possedePersonnage(p)) ihmjeu.getBandeau2().getInfo().miseAJour(p);
   }
 }
  /** Met à jour les personnages s'ils sont KO */
  public void MAJPVPersonnage() {
    for (Personnage p : joueur1.getEquipe()) {
      if (p.isPointVieEgal0() && !p.isKO()) {
        p.setKO();
        Case c = plateau.getCase(p.getPosition());
        c.liberer();
      }
    }

    for (Personnage p : joueur2.getEquipe()) {
      if (p.isPointVieEgal0() && !p.isKO()) {
        p.setKO();
        Case c = plateau.getCase(p.getPosition());
        c.liberer();
      }
    }
  }
 /**
  * Place un personnage sur le plateau
  *
  * @param j joueur qui va placer les personnages
  * @param idPersonnage numero du personnage dans l'équipe du joueur
  * @param positionCaseSelectionné position de la case à placer le joueur
  * @throws CaseNonVide Exception
  * @throws CaseAdverse Exception
  */
 public void placerPersonnage(Joueur j, int idPersonnage, int[] positionCaseSelectionné)
     throws CaseNonVide, CaseAdverse {
   if (plateau.caseEstVide(positionCaseSelectionné)) {
     if (j == joueur1 && positionCaseSelectionné[0] < TaillePlateauX / 2
         || j == joueur2 && positionCaseSelectionné[0] >= (TaillePlateauX - TaillePlateauX / 2)) {
       Personnage p = j.getPersonnage(idPersonnage);
       p.setPosition(positionCaseSelectionné);
       plateau.poser(p, positionCaseSelectionné);
     } else throw new CaseAdverse();
   } else {
     throw new CaseNonVide();
   }
 }
 /**
  * Ajoute un personnage dans l'équipe du joueur sélectionné
  *
  * @param j joueur qui sélectionne
  * @param p Classe du personnage selectionné
  * @throws InstantiationException
  * @throws IllegalAccessException
  */
 public void ajouterPersonnage(Joueur j, Class<?> p)
     throws InstantiationException, IllegalAccessException {
   j.ajouterPersonnage((Personnage) p.newInstance());
 }
 /**
  * Retourne un booléen si l'equipe du joueur est KO
  *
  * @param j joueur à verifier
  * @return <code>true</code> si l'équipe est KO; <code>false</code> sinon
  */
 public boolean verifieEquipeKO(Joueur j) {
   for (Personnage p : j.getEquipe()) {
     if (!p.isKO()) return false;
   }
   return true;
 }
 /**
  * Met le nom du joueur
  *
  * @param j joueur à mettre le nom
  * @param nom futur nom du joueur
  */
 public void setnomjoueur(Joueur j, String nom) {
   j.setNom(nom);
 }