/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package metier; import java.util.*; import javax.swing.*; /** * * @author steve.maingana */ public class Jeu { // Nom du jeu private String nomJeu; // Tableau de personnages private ArrayList persos; // Equipes de jeu private ArrayList Equipe1; private ArrayList Equipe2; /** * Création du jeu * @param nomJeu Nom du jeu */ public Jeu(String nomJeu) { this.setNomJeu(nomJeu); this.chargerPersonnages(); // this.definirEquipes(); } /** * Représentation de la classe Jeu sous la forme d'une chaîne de caractères * @return Chaîne de caractères */ public String toString() { String envoi = ""; envoi += "Jeu{" + "nomJeu=" + this.nomJeu + ",\n persos="; for (int i = 0; i < this.persos.size(); i++) { envoi += this.persos.get(i).toString(); envoi += ",\n"; } envoi += "}"; return envoi; } /** * Défini le nom du jeu * @param nomJeu Nom du jeu */ public void setNomJeu(String nomJeu) { this.nomJeu = nomJeu; } public String getNomJeu() { return nomJeu; } /** * Défini le tableau de personnages * @param persos Tableau de personnages */ public void setPersos(ArrayList persos) { this.persos = persos; } public ArrayList getPersos() { return this.persos; } /** * Initialise le tableau de personnages */ private void chargerPersonnages() { //création des énigmes; Enigme[] enigmes1 = { new Enigme("Qu’est ce qui est plus grand que la Tour Eiffel, mais infiniment moins lourd ?","ombre"), new Enigme("Girafe = 3, Éléphant = 3, Hippopotame = 5, Lion = … ?","2"), new Enigme("Qu'est-ce qui commence la nuit et termine le matin ?","n"), new Enigme("Qu'est-ce qui fait le tour de la maison sans bouger ?","mur") }; Enigme[] enigmes2 = { new Enigme("Considérez la suite de chiffre suivante : 0 1 1 2 3 5 8 Quel chiffre suit le 8 ?","13"), new Enigme("Prenez une pizza et placez-la devant vous. En combien de morceaux maximum pouvez-vous la couper en effectuant seulement six coups de couteau ?","16"), new Enigme("C'est le jour de la paie. La poule reçoit 7 euros. L'abeille reçoit 21 euros. L'araignée reçoit 28 euros. Combien reçoit le chien ?","14"), new Enigme("Un escargot est au fond d'un puits de 10 mètres. Chaque matin il monte de 3 mètres et chaque nuit il descend de 2 mètres. Combien de jours lui faudra-t-il pour sortir de ce puits ?","7") }; ArrayList persos = new ArrayList(); persos.add(new Guerrier("Jayce", "Jayce.jpg", 5, 5, "Hache")); persos.add(new Guerrier("Ambresa", "Ambresa.jpg", 8, 9, "Lance")); persos.add(new Guerrier("Ekko", "Ekko.jpg", 5, 6, "Poignard")); persos.add(new Sorcier("Mel", "Mel.jpg", 6, 7, "De laurier", enigmes1)); persos.add(new Sorcier("Viktor", "Viktor.jpg", 10, 5, "Hexcore", enigmes2)); persos.add(new Voleur("Jinx", "Jinx.jpg", 7, 6, "Marteau")); this.setPersos(persos); System.out.println("Personnages chargés !"); } /** * Obtenir la liste des personnages encore en vie * @return Liste des personnages encore en vie */ public Vector getLesPersonnagesVivants() { Vector lesPersonnages = new Vector<>(); for (Personnage perso : this.persos) { if (perso.getDureeVie() > 0) { lesPersonnages.add(perso.getClass().getSimpleName()+":"+perso.getNom()); } } return lesPersonnages; } /** * Répartit les personnages en équipes de 3 */ private void definirEquipes() { for (int i = 0; i < 6; i++) { int rollEquipe = (int) (Math.random()*2)+1; if (rollEquipe == 1) { if (this.Equipe1.size() == 3) { this.Equipe2.add(this.persos.get(i)); } else { this.Equipe1.add(this.persos.get(i)); } } } } /** * Recherche un personnage dans le tableau * @param nom Nom du personnage * @return S'il existe, il retourne le personnage sinon rien */ public Personnage rechercherPerso(String nom) { Personnage perso = null; boolean trouve = false; int i = 0; while (!trouve && i < this.persos.size()) { if (this.persos.get(i).getNom().equals(nom)) { perso = this.persos.get(i); trouve = true; } else { i++; } } return perso; } public void deroulement() { boolean actif = true; int tour = 1; ArrayList DuelE1 = null; ArrayList DuelE2 = null; do { JOptionPane.showMessageDialog(null, "Tour "+tour, "3v3", JOptionPane.INFORMATION_MESSAGE); do { Personnage hasard = this.Equipe1.get(genererNbAleatoire(0, 2)); if (!DuelE1.contains(hasard)) { DuelE1.add(hasard); } } while (DuelE1.size() < 3); do { Personnage hasard = this.Equipe2.get(genererNbAleatoire(0, 2)); if (!DuelE2.contains(hasard)) { DuelE2.add(hasard); } } while (DuelE1.size() < 3); } while(actif); } /** * Génère un nombre aléatoire dans une intervalle * @param min Intervalle de début * @param max Intervalle de fin * @return Nombre aléatoire */ public static int genererNbAleatoire(int min, int max) { return min + (int)(Math.random() * ((max - min) + 1)); } }