コード例 #1
0
 /**
  * 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();
   }
 }
コード例 #2
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);
     }
   }
 }
コード例 #3
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);
   }
 }
コード例 #4
0
  /** 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();
      }
    }
  }
コード例 #5
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);
     }
   }
 }
コード例 #6
0
  /**
   * Utilise l'action du personnage selectionné
   *
   * @param p personnage selectionné
   * @param idActionSelectionné action selectionné
   * @param positionCaseSelectionné position de la case où l'on veut lancer l'attaque
   */
  public void personnageAction(
      Personnage p, int idActionSelectionné, int[] positionCaseSelectionné) {
    Class<?> c = p.getAction(idActionSelectionné);
    typePortee tp;
    try {
      Constructor<?> constructeur = c.getConstructor(new Class[] {Personnage.class, Jeu.class});
      tp = (typePortee) c.getMethod("getTypePortee").invoke(c);
      if (tp == typePortee.CIBLE) {
        for (int[] tc : this.VoisinageCaseZoneCible(positionCaseSelectionné)) {
          if (plateau.caseGetPersonnage(tc) != null)
            constructeur.newInstance(new Object[] {plateau.caseGetPersonnage(tc), this});
        }
      } else if (plateau.caseGetPersonnage(positionCaseSelectionné) != null) {
        constructeur.newInstance(
            new Object[] {plateau.caseGetPersonnage(positionCaseSelectionné), this});
      }

    } catch (Exception e) {
    }
  }
コード例 #7
0
 /**
  * Deplace un personnage
  *
  * @param p personnage à déplacer
  * @param positionCaseSelectionné nouvelle position du personnage à déplacer
  */
 public void deplacerPersonnage(Personnage p, int[] positionCaseSelectionné) {
   plateau.libererCase(p.getPosition());
   p.deplacer(positionCaseSelectionné);
   plateau.poser(p, positionCaseSelectionné);
   this.hasDéplacé();
 }
コード例 #8
0
 /**
  * Retourne le personnage présent sur cette case
  *
  * @param positionCaseSelectionné position de la case du personnage à recuperer
  * @return le personnage de cette case
  */
 public Personnage caseGetPersonnage(int[] positionCaseSelectionné) {
   return plateau.caseGetPersonnage(positionCaseSelectionné);
 }