/** 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); }