/** 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(); } }
public static void creerEquipe() throws Exception { int nbEquipe = Tournois.nbEquipesMix(); MainWindows.barequipe.setMaximum(nbEquipe); MainWindows.barequipe.setMinimum(0); MainWindows.barequipe.setValue(0); int nbterrain = Tournois.getNbTerrain(); List<Equipe> paire = Equipe.getListPaire(); List<Joueur> ancien = Joueur.getListeAncien(); List<Joueur> nouveau = Joueur.getListeNouveau(); Collections.sort(ancien); Collections.sort(nouveau); Joueur j1 = null; Joueur j2 = null; if ((nbEquipe % 2) != 0) { nbEquipe--; } for (int i = 0; i < nbEquipe; i++) { int k = 0; j1 = nouveau.get(i); j2 = ancien.get(i); while (((j2.getJoue()) || (Equipe.alreadyTeam(paire, j1, j2))) && (k < ancien.size() - 1)) { k++; j2 = ancien.get(k); } j1.setJoue(true); if (j2.getJoue() == false) { j2.setJoue(true); database.insert( "insert into equipe(idjoueur1, idjoueur2, numerotour) values (" + j1.getIdJoueur() + "," + j2.getIdJoueur() + "," + Tournois.getNbToursEffectif() + ")"); j1.addTour(); j2.addTour(); System.out.println(j1.getPrenom() + " avec " + j2.getPrenom()); new ThreadProgressBar(MainWindows.barequipe, 1).start(); } else { throw new ExceptionCreerPaire("Plus de combinaison de paire possible"); } } if (ancien.size() > nouveau.size()) { for (int i = nbEquipe; i < (ancien.size() / 2) + 1; i++) { int k = 0; int j = 0; j1 = ancien.get(k); while ((j1.getJoue()) && (k < ancien.size() - 1)) { k++; j1 = ancien.get(k); } j1.setJoue(true); j2 = ancien.get(j); while ((j < ancien.size() - 1) && ((j2.getJoue()) || Equipe.alreadyTeam(paire, j1, j2))) { j++; j2 = ancien.get(j); } if (j2.getJoue() == false) { j2.setJoue(true); if (j1.getIdJoueur() != j2.getIdJoueur()) { database.insert( "insert into equipe(idjoueur1, idjoueur2, numerotour) values (" + j1.getIdJoueur() + "," + j2.getIdJoueur() + "," + Tournois.getNbToursEffectif() + ")"); j1.addTour(); j2.addTour(); System.out.println( j1.getPrenom() + " indice:" + k + " avec " + j2.getPrenom() + " indice: " + j); } new ThreadProgressBar(MainWindows.barequipe, 1).start(); } else { throw new ExceptionCreerPaire("Plus de combinaison de paire possible"); } } } else if (nouveau.size() > ancien.size()) { for (int i = nbEquipe; i < (nouveau.size() / 2) + 1; i++) { int k = 0; int j = 0; while ((j1.getJoue()) && (k < nouveau.size() - 1)) { k++; j1 = nouveau.get(k); } j1.setJoue(true); j2 = nouveau.get(i); while ((j < nouveau.size()) && ((j2.getJoue()) || Equipe.alreadyTeam(paire, j1, j2))) { j++; j2 = nouveau.get(k); System.out.println("Etat du joueur 2: " + j2.getJoue()); } if (j2.getJoue() == false) { j2.setJoue(true); if (j1.getIdJoueur() != j2.getIdJoueur()) { database.insert( "insert into equipe(idjoueur1, idjoueur2, numerotour) values (" + j1.getIdJoueur() + "," + j2.getIdJoueur() + "," + Tournois.getNbToursEffectif() + ")"); j1.addTour(); j2.addTour(); System.out.println( j1.getPrenom() + " indice:" + k + " avec " + j2.getPrenom() + " indice: " + j); } new ThreadProgressBar(MainWindows.barequipe, 1).start(); } else { throw new ExceptionCreerPaire("Plus de combinaison de paire possible"); } } } }
/** * 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); }