Dépot
This commit is contained in:
172
JDR/src/metier/Jeu.java
Normal file
172
JDR/src/metier/Jeu.java
Normal file
@@ -0,0 +1,172 @@
|
||||
/*
|
||||
* 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.ArrayList;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author steve.maingana
|
||||
*/
|
||||
public class Jeu {
|
||||
// Nom du jeu
|
||||
private String nomJeu;
|
||||
// Tableau de personnages
|
||||
private Personnage[] persos;
|
||||
// Equipes de jeu
|
||||
private ArrayList<Personnage> Equipe1;
|
||||
private ArrayList<Personnage> 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.length; i++) {
|
||||
envoi += this.persos[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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Défini le tableau de personnages
|
||||
* @param persos Tableau de personnages
|
||||
*/
|
||||
public void setPersos(Personnage[] persos) {
|
||||
this.persos = 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")
|
||||
};
|
||||
|
||||
Personnage[] persos = {
|
||||
new Guerrier("Jayce", "Jayce.jpg", 5, 5, "Hache"),
|
||||
new Guerrier("Ambresa", "Ambresa.jpg", 8, 9, "Lance"),
|
||||
new Guerrier("Ekko", "Ekko.jpg", 5, 6, "Poignard"),
|
||||
new Sorcier("Mel", "Mel.jpg", 6, 7, "De laurier", enigmes1),
|
||||
new Sorcier("Viktor", "Viktor.jpg", 10, 5, "Hexcore", enigmes2),
|
||||
new Voleur("Jinx", "Jinx.jpg", 7, 6, "Marteau")
|
||||
};
|
||||
|
||||
this.setPersos(persos);
|
||||
System.out.println("Personnages chargés !");
|
||||
}
|
||||
|
||||
/**
|
||||
* 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[i]);
|
||||
} else {
|
||||
this.Equipe1.add(this.persos[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.length) {
|
||||
if (this.persos[i].getNom().equals(nom)) {
|
||||
perso = this.persos[i];
|
||||
trouve = true;
|
||||
} else {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
return perso;
|
||||
}
|
||||
|
||||
public void deroulement() {
|
||||
boolean actif = true;
|
||||
int tour = 1;
|
||||
ArrayList<Personnage> DuelE1 = null;
|
||||
ArrayList<Personnage> 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));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user