Пример #1
0
 /**
  * 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);
   }
 }
Пример #2
0
 /** Routine graphique de la désélection d'un personnage */
 public void IhmDeselectionPersonnage() {
   if ((!isDéplacé() && !isAction() && isPlacé())
       && personnageSelectionné == caseGetPersonnage(positionCaseSelectionné)) {
     ihmjeu.getGuiCase(positionCaseSelectionné).setBackground(getJoueurCourant().getColor());
     this.setPhase(Phase.SELECTION_PERSONNAGE);
     ihmjeu.getCommande2().boutonDesactive();
     ihmjeu.afficherTerminal("Selectionner un Personnage");
   }
 }
Пример #3
0
 /**
  * Routine graphique permettant de ne plus voir les cases où l'on peut effectuer l'action
  *
  * @param idActionSelectionné action à effectuer
  */
 public void IhmFinVoirCasePossibleAction(int idActionSelectionné) {
   for (int[] pos : this.VoisinageCaseAction(idActionSelectionné)) {
     if (this.getCase(pos).estVide()) ihmjeu.getGuiCase(pos).setBackground(Color.WHITE);
     else if (this.comparepositionCaseSelectionné(personnageSelectionné.getPosition(), pos))
       ihmjeu.getGuiCase(pos).setBackground(Color.YELLOW);
     else if (this.joueur1.possedePersonnage(this.getCase(pos).getPersonnage()))
       ihmjeu.getGuiCase(pos).setBackground(this.joueur1.getColor());
     else if (this.joueur2.possedePersonnage(this.getCase(pos).getPersonnage()))
       ihmjeu.getGuiCase(pos).setBackground(this.joueur2.getColor());
   }
 }
Пример #4
0
 /** Routine graphique pour la selection des personnages */
 public void IhmSelectionPersonnage() {
   try {
     personnageSelectionné = this.choisirPersonnage(positionCaseSelectionné);
     ihmjeu.getGuiCase(positionCaseSelectionné).setBackground(Color.YELLOW);
     this.setPhase(Phase.NORMAL);
     ihmjeu.getCommande2().boutonActive();
     ihmjeu.afficherTerminal("Selectionner une Commande");
   } catch (CaseVide e) {
     ihmjeu.afficherTerminal("Erreur, la case selectionné est vide. Selectionner un Personnage");
   } catch (PersonnageAdverse e) {
     ihmjeu.afficherTerminal(
         "Erreur, la personnage selectionné n'est pas le votre. Selectionner un Personnage");
   }
 }
Пример #5
0
 /** Routine graphique pour voir les cases où l'on peut se placer le personnage selectionné */
 public void IhmVoirCasePossiblePlacement() {
   for (int i = 0; i < TaillePlateauX; i++) {
     for (int j = 0; j < TaillePlateauY; j++) {
       int[] positionCaseSelectionné = {i, j};
       if (getJoueurCourant() == joueur1
           && plateau.caseEstVide(positionCaseSelectionné)
           && i < TaillePlateauX / 2)
         ihmjeu.getGuiCase(positionCaseSelectionné).setBackground(Color.GREEN);
       else if (getJoueurCourant() == joueur2
           && plateau.caseEstVide(positionCaseSelectionné)
           && i >= (TaillePlateauX - TaillePlateauX / 2))
         ihmjeu.getGuiCase(positionCaseSelectionné).setBackground(Color.GREEN);
     }
   }
 }
Пример #6
0
 /** Routine graphique du deplacement d'un personnage */
 public void IhmDeplacementPersonnage() {
   try {
     if (this.verifierCaseDeplacement(personnageSelectionné, positionCaseSelectionné)) {
       this.IhmFinVoirCasePossibleDeplacement();
       this.deplacerPersonnage(personnageSelectionné, positionCaseSelectionné);
       ihmjeu.getCommande2().deplacementFinie();
     }
     ihmjeu.getGuiCase(positionCaseSelectionné).setBackground(Color.YELLOW);
     ihmjeu.afficherTerminal("Selectionner une Commande");
     this.setPhase(Phase.NORMAL);
   } catch (DeplacementImpossible e) {
     ihmjeu.afficherTerminal(
         "Vos points de mouvements ne permettent pas de se deplacer sur cette case");
   }
 }
Пример #7
0
 /** 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();
     }
   }
 }
Пример #8
0
 /** Routine graphique de l'action selectionné d'un personnage */
 public void IhmActionPersonnage() {
   try {
     if (this.verifierCaseAction(idActionSelectionné, positionCaseSelectionné)) {
       this.personnageAction(personnageSelectionné, idActionSelectionné, positionCaseSelectionné);
       ihmjeu.getCommande2().actionFinie();
       this.IhmFinAction();
       this.hasAction();
       this.IhmFinVoirCasePossibleAction(idActionSelectionné);
       this.MAJPVPersonnage();
       this.verifiegagner();
     }
   } catch (ActionNonSelectionne e) {
     ihmjeu.afficherTerminal("Il faut d'abord selectionner une attaque");
   } catch (PorteeActionInsuffisante e) {
     ihmjeu.afficherTerminal("La portée de l'attaque est insuffisante pour atteindre cette case");
   }
 }
Пример #9
0
 /** Routine graphique de la fin d'une Action */
 public void IhmFinAction() {
   ihmjeu.getCommande3().setVisible(false);
   ihmjeu.remove(ihmjeu.getCommande3());
   ihmjeu.getCommande2().setVisible(true);
   ihmjeu.getContentPane().add(ihmjeu.getCommande2(), BorderLayout.SOUTH);
   if (tour.isMultipleAction() && !tour.finMultipleAction())
     ihmjeu.getCommande2().actionMultiple();
   ihmjeu.afficherTerminal("Selectionner une Commande");
   this.setPhase(Phase.NORMAL);
 }
Пример #10
0
 /** Lie les cases avec les IHMCase (case graphique JButton) */
 public void lierCaseInterface() {
   for (int i = 0; i < TaillePlateauX; i++) {
     for (int j = 0; j < TaillePlateauY; j++) {
       int[] positionCaseSelectionné = {i, j};
       Case c = plateau.getCase(positionCaseSelectionné);
       IHMCase ie = ihmjeu.getGuiCase(positionCaseSelectionné);
       c.addObserver(ie);
     }
   }
 }
Пример #11
0
 /** Routine graphique de la fin du Tour */
 public void IhmFinTour() {
   ihmjeu
       .getGuiCase(personnageSelectionné.getPosition())
       .setBackground(getJoueurCourant().getColor());
   this.finTour();
   ihmjeu.getCommande2().setVisible(false);
   ihmjeu.remove(ihmjeu.getCommande2());
   ihmjeu.setCommande2(new IHMCommandeVue2(ihmjeu, this));
   ihmjeu.getContentPane().add(ihmjeu.getCommande2(), BorderLayout.SOUTH);
   ihmjeu.afficherTerminal("Selectionner un Personnage");
   this.setPhase(Phase.SELECTION_PERSONNAGE);
 }
Пример #12
0
 /** Routine graphique lorsque la commande Action est appuyé */
 public void IhmActionAppuyé() {
   ihmjeu.getCommande2().setVisible(false);
   ihmjeu.remove(ihmjeu.getCommande2());
   ihmjeu.setCommande3(
       new IHMCommandeVue3(personnageSelectionné, ihmjeu, this, getJoueurCourant()));
   ihmjeu.getContentPane().add(ihmjeu.getCommande3(), BorderLayout.SOUTH);
   ihmjeu.afficherTerminal("Selectionner une Action");
   this.setPhase(Phase.ACTION_PERSONNAGE);
 }
Пример #13
0
  /** Effectue une sauvegarde de la partie actuelle */
  public void sauvegarder() {

    final Jeu tempjeu = this;
    ObjectOutputStream oos = null;
    try {
      final FileOutputStream fichier = new FileOutputStream("jeu.ser");
      oos = new ObjectOutputStream(fichier);
      oos.writeObject(tempjeu);
      oos.flush();
    } catch (final java.io.IOException e) {
      e.printStackTrace();
    } finally {
      try {
        if (oos != null) {
          oos.flush();
          oos.close();
        }
      } catch (final IOException ex) {
        ihmjeu.afficherTerminal("Sauvegarde Impossible");
      }
    }
  }
Пример #14
0
 /** Routine graphique pour voir les cases où l'on peut se déplacer le personnage selectionné */
 public void IhmVoirCasePossibleDeplacement() {
   for (int[] pos : this.VoisinageCaseDeplacement(personnageSelectionné)) {
     ihmjeu.getGuiCase(pos).setBackground(Color.GREEN);
   }
 }
Пример #15
0
 /**
  * Routine graphique permettant de voir les cases où l'on peut effectuer l'action
  *
  * @param idActionSelectionné action à effectuer
  */
 public void IhmVoirCasePossibleAction(int idActionSelectionné) {
   for (int[] pos : this.VoisinageCaseAction(idActionSelectionné))
     ihmjeu.getGuiCase(pos).setBackground(Color.RED);
 }
Пример #16
0
  /** Routine graphique pour le placement des personnages */
  public void IhmPlacementPersonnage() {
    try {
      this.placerPersonnage(
          getJoueurCourant(), IdPersonnageSelectionné, this.positionCaseSelectionné);
      this.IhmFinVoirCasePossiblePlacement();
      ihmjeu.getCommande1().placementReussi(IdPersonnageSelectionné);
      ihmjeu.getCommande1().boutonActive(IdPersonnageSelectionné);
    } catch (CaseNonVide e) {
      JOptionPane.showMessageDialog(
          null, "La case n'est pas vide", e.toString(), JOptionPane.ERROR_MESSAGE);

    } catch (CaseAdverse e) {
      JOptionPane.showMessageDialog(
          null,
          "La case selectionné est dans le champs adverse",
          e.toString(),
          JOptionPane.ERROR_MESSAGE);
    }

    if (_countjoueur < 1 && ihmjeu.getCommande1().finPlacement()) {
      _countjoueur++;
      ihmjeu.remove(ihmjeu.getCommande1());
      this.joueurSuivant();
      ihmjeu.setCommande1(new IHMCommandeVue1(this, getJoueurCourant()));
      ihmjeu.getContentPane().add(ihmjeu.getCommande1(), BorderLayout.SOUTH);
      ihmjeu.afficherTerminal(
          "Joueur "
              + this.getJoueurCourant().getNom()
              + " : Placer vos personnages sur le plateau");

    } else if (_countjoueur == 1 && ihmjeu.getCommande1().finPlacement()) {
      this.hasPlacé();
      this.joueurSuivant();
      this.setPhase(Phase.SELECTION_PERSONNAGE);
      ihmjeu.remove(ihmjeu.getCommande1());
      ihmjeu.setCommande2(new IHMCommandeVue2(ihmjeu, this));
      ihmjeu.getContentPane().add(ihmjeu.getCommande2(), BorderLayout.SOUTH);
      ihmjeu.afficherTerminal("Selectionner un Personnage");
    }
  }
Пример #17
0
 /** Effacer les informations contenues dans les bandeaux (IHMBandeau) */
 public void finInfoPersonnage() {
   ihmjeu.getBandeau1().getInfo().miseAJour(null);
   ihmjeu.getBandeau2().getInfo().miseAJour(null);
 }