diff --git a/JDR/src/Presentation/Plateau_de_jeu.form b/JDR/src/Presentation/Plateau_de_jeu.form index b9628b0..fd1f98e 100644 --- a/JDR/src/Presentation/Plateau_de_jeu.form +++ b/JDR/src/Presentation/Plateau_de_jeu.form @@ -85,6 +85,9 @@ + + + diff --git a/JDR/src/Presentation/Plateau_de_jeu.java b/JDR/src/Presentation/Plateau_de_jeu.java index ac0cd3c..ff8d78a 100644 --- a/JDR/src/Presentation/Plateau_de_jeu.java +++ b/JDR/src/Presentation/Plateau_de_jeu.java @@ -359,6 +359,11 @@ public class Plateau_de_jeu extends javax.swing.JFrame { jMenu2.add(jMIobjectif); jMIapropos.setText("A propos"); + jMIapropos.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jMIaproposActionPerformed(evt); + } + }); jMenu2.add(jMIapropos); jMenuBar1.add(jMenu2); @@ -415,6 +420,8 @@ public class Plateau_de_jeu extends javax.swing.JFrame { String nomPerso = perso.split(":")[1]; Personnage Perso = leJeu.rechercherPerso(nomPerso); jTADefenseurCaracteristiques.setText(Perso.toString()); + Icon imgPerso = new javax.swing.ImageIcon(getClass().getResource("/img/" + Perso.getImg()));//getResource("/img/" + this.getImg())); + jLImageDefenseur.setIcon(imgPerso); }//GEN-LAST:event_jCBoxDefenseurActionPerformed private void jCBoxAttaquantActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCBoxAttaquantActionPerformed @@ -423,6 +430,8 @@ public class Plateau_de_jeu extends javax.swing.JFrame { String nomPerso = perso.split(":")[1]; Personnage Perso = leJeu.rechercherPerso(nomPerso); jTAAttaquantCaracteristiques.setText(Perso.toString()); + Icon imgPerso = new javax.swing.ImageIcon(getClass().getResource("/img/" + Perso.getImg()));//getResource("/img/" + this.getImg())); + jLImageAttaquant.setIcon(imgPerso); }//GEN-LAST:event_jCBoxAttaquantActionPerformed private void jCBoxAttaquantInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {//GEN-FIRST:event_jCBoxAttaquantInputMethodTextChanged @@ -444,7 +453,8 @@ public class Plateau_de_jeu extends javax.swing.JFrame { }//GEN-LAST:event_jMIquitActionPerformed private void jMIobjectifActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMIobjectifActionPerformed - // TODO add your handling code here: + information j = new information(); + j.objectif(); }//GEN-LAST:event_jMIobjectifActionPerformed private void jMIaideActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMIaideActionPerformed @@ -452,6 +462,11 @@ public class Plateau_de_jeu extends javax.swing.JFrame { j.aide(); }//GEN-LAST:event_jMIaideActionPerformed + private void jMIaproposActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMIaproposActionPerformed + information j = new information(); + j.aPropos(); + }//GEN-LAST:event_jMIaproposActionPerformed + private void majStatistiquesPersos(){ diff --git a/JDR/src/Presentation/information.java b/JDR/src/Presentation/information.java index f546971..797fb23 100644 --- a/JDR/src/Presentation/information.java +++ b/JDR/src/Presentation/information.java @@ -25,6 +25,17 @@ public class information { } public void objectif(){ + String text = "L'objectif est qu'il ne reste plus que 1 seul survivant\n" + + " rien de plus simple, \n" + + "nous avons mis à disposition dans le menu une page d'ajout de personnage, amusez-vous"; + JOptionPane.showMessageDialog(null, text, "Voici votre objectif", JOptionPane.INFORMATION_MESSAGE); + } + + public void aPropos(){ + String text = "Ce jeu vous est proposé par le bon LALORCEY--MALCUIT Emile\n" + + "Création dans le cadre du BTS SIO\n" + + "Ce jeu ne peux être utilisé à des fin commercials"; + JOptionPane.showMessageDialog(null, text, "Aide envoyé", JOptionPane.INFORMATION_MESSAGE); } } diff --git a/JDR/src/jeuderole/JeuDeRolePolymorphisme.java b/JDR/src/jeuderole/JeuDeRolePolymorphisme.java index ae0883c..7f6f4ce 100644 --- a/JDR/src/jeuderole/JeuDeRolePolymorphisme.java +++ b/JDR/src/jeuderole/JeuDeRolePolymorphisme.java @@ -5,6 +5,7 @@ package jeuderole; import metier.Jeu; +import metier.JeuBaton; /** * Test Classe Jeu @@ -21,17 +22,10 @@ public class JeuDeRolePolymorphisme { mesPersonnages[2].saluer(mesPersonnages[0]); mesPersonnages[1].saluer(mesPersonnages[2]);**/ - Jeu role = new Jeu(); - System.out.println(role.getmesPersonnages()); - System.out.println("................."); - System.out.println(role); - System.out.println(role.rechercherPerso("Barbare")); - System.out.println(role.rechercherPerso("Panoramix")); - System.out.println("................."); - System.out.println(role.rechercherPerso("Barbare").rencontrer(role.rechercherPerso("Panoramix"))); - System.out.println(role.rechercherPerso("Raptout").rencontrer(role.rechercherPerso("Barbare"))); - - + //Jeu leJeu = new Jeu(); + //leJeu.rechercherPerso("Yokai").rencontrer("Barbare") + JeuBaton baton = new JeuBaton(); + baton.deroulerJeu(); } } diff --git a/JDR/src/metier/FeeSombre.java b/JDR/src/metier/FeeSombre.java new file mode 100644 index 0000000..f24ffee --- /dev/null +++ b/JDR/src/metier/FeeSombre.java @@ -0,0 +1,101 @@ +/* + * 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 javax.swing.Icon; +import javax.swing.JOptionPane; + +/** + * + * @author emile.lalorcey + */ +public class FeeSombre extends Personnage{ + private String type; + + /** + * Constructeur de la classe FeeSombre + * @param nom + * @param img + * @param energie + * @param dureeVie + * @param ty + */ + public FeeSombre(String nom, String img, int energie, int dureeVie, String ty){ + super(nom, img, energie, dureeVie); + this.type = ty; + } + + public String getType(){ + return this.type; + } + + + /** + * Methode saluer + * @param unPerso + * @return + */ + @Override + public String saluer(Personnage unPerso){ + String titre = this.getNom() + " salue " + unPerso.getNom(); + String message = "Bonjour " + unPerso.getNom() + " Comment allez-vous ajourd'hui"; + //JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE); + Icon imgPerso = new javax.swing.ImageIcon(getClass().getResource("/img/" + this.getImg())); + JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE, imgPerso); + return message; + } + + /** + * Methode rencontrer faisant appelle à un mini jeu nommé jeu baton + * @param unPerso + * @return + */ + @Override + public String rencontrer(Personnage unPerso){ + String titre = this.getNom() + " rencontre " + unPerso.getNom(); + String message = "Bonjour " + unPerso.getNom() + " !"; + JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE); + //Icon imgPerso = new javax.swing.ImageIcon(getClass().getResource("/img/" + this.getImg())); + //JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE, imgPerso); + JeuBaton baton = new JeuBaton(); + boolean gagner = baton.deroulerJeu(); + if(gagner){ + unPerso.varierDureeVie(2); + this.varierEnergie(-1); + } + else{ + unPerso.varierEnergie(-2); + } + return message; + } + /** + * Methode to string addapter à une fée sombre + * @return les caractéristique d'une Fée Sombre + */ + @Override + public String toString(){ + return super.toString()+this.type; + } + + /** + * Détermine si l'objet spécifié est égal à l'objet actuel. + * @param obj + * @return boolean signifiant si oui ou non les objets sont égaux + */ + @Override + public boolean equals(Object obj){ + + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + return super.equals(obj); + } +} diff --git a/JDR/src/metier/Jeu.java b/JDR/src/metier/Jeu.java index 1e36113..98549d3 100644 --- a/JDR/src/metier/Jeu.java +++ b/JDR/src/metier/Jeu.java @@ -50,10 +50,13 @@ public class Jeu { mesPersonnages.add(new Guerrier("Barbare", "", 6, 4, "Hache")); mesPersonnages.add(new Guerrier("Garren","Guerrier08.jpg" , 2, 8, "Gourdin")); mesPersonnages.add(new Guerrier("Hellen","Guerrier08.jpg" , 8, 6, "Gourdin")); - mesPersonnages.add(new Personnage("Gaelle", "Barbare04.jpg", 5, 3)); + //mesPersonnages.add(new Personnage("Gaelle", "Barbare04.jpg", 5, 3)); + //Plus possible car personnage est devenue abstract mesPersonnages.add(new Voleur("Raptout", "", 2, 4, "Marteau")); mesPersonnages.add(new Sorcier("Panoramix", "", 10, 5, "Baguette de laurier")); mesPersonnages.add(new Sorcier("Jinx","Barbare04.jpg",0,0, "Bâton")); + mesPersonnages.add(new FeeSombre("Yokai","Barbare04.jpg",4,6, "Terre")); + mesPersonnages.add(new FeeSombre("Shard","Barbare04.jpg",7,5, "Vent")); } /** diff --git a/JDR/src/metier/JeuBaton.java b/JDR/src/metier/JeuBaton.java new file mode 100644 index 0000000..c552e48 --- /dev/null +++ b/JDR/src/metier/JeuBaton.java @@ -0,0 +1,69 @@ +/* + * 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.Scanner; + +/** + * + * @author emile.lalorcey + */ +public class JeuBaton { + private int nbAlea = (int)(Math.random()*100); + private int nbCoup = 6; + + /** + * Constructeur de la class JeuBaton + */ + public JeuBaton(){ + + } + + public int getNbAlea(){ + return this.nbAlea; + } + + public int getNbCoup(){ + return this.nbCoup; + } + + public boolean tourPasser(){ + boolean possible = true; + if(this.getNbCoup()>0){ + this.nbCoup -= 1; + } + else{ + possible = false; + } + return possible; + } + + public boolean deroulerJeu(){ + boolean gagner = false; + Scanner LectureClavier = new Scanner(System.in); + int valeur ; + System.out.println("Vous allez devoir deviner un nombre aléatoire \n" + + "entre 0 et 100 en 6 tentatives maximum!"); + do{ + System.out.println("Il vous reste " + this.getNbCoup() + " tentatives.\n" + + "Entrez le prochain nombre à tester : "); + valeur = LectureClavier.nextInt(); + if(valeur == this.getNbAlea()){ + gagner = true; + } + else{ + if(valeur > this.getNbAlea()){ + System.out.println("Nombre trop grand"); + } + else{ + System.out.println("Nombre trop petit"); + } + this.tourPasser(); + } + }while(!gagner && (this.getNbCoup()>0)); + + return gagner; + } +} diff --git a/JDR/src/metier/Personnage.java b/JDR/src/metier/Personnage.java index a5baa3d..dc8f983 100644 --- a/JDR/src/metier/Personnage.java +++ b/JDR/src/metier/Personnage.java @@ -8,7 +8,7 @@ import javax.swing.JOptionPane; * @author Dominique_2 * @version 20170215 */ -public class Personnage { +public abstract class Personnage { // Variables membres private String nom; private String img; @@ -28,9 +28,7 @@ public class Personnage { this.dureeVie = dureeVie; } - public Personnage() { -// throw new UnsupportedOperationException("Not supported yet."); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody - } + /** * Permet d'obtenir les valeurs des attributs de l'objet courant * @return liste des attributs avec leurs valeurs @@ -156,23 +154,9 @@ public class Personnage { this.nom = nom; } - public String rencontrer(Personnage unPerso) { - String titre = this.getNom() + " rencontre " + unPerso.getNom(); - String message = "Bonjour " + unPerso.getNom() + " !"; - JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE); - //Icon imgPerso = new javax.swing.ImageIcon(getClass().getResource("/img/" + this.getImg())); - //JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE, imgPerso); - return message; - } + public abstract String rencontrer(Personnage unPerso); - public String saluer(Personnage unPerso){ - String titre = this.getNom() + " salue " + unPerso.getNom(); - String message = "Bonjour " + unPerso.getNom() + " Comment allez-vous ajourd'hui"; - //JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE); - Icon imgPerso = new javax.swing.ImageIcon(getClass().getResource("/img/" + this.getImg())); - JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE, imgPerso); - return message; - } + public abstract String saluer(Personnage unPerso); /** * Cette fonction permet de faire varier l'energie de l'objet émetteur diff --git a/JDR/src/metier/Sorcier.java b/JDR/src/metier/Sorcier.java index 560f32d..3aabb27 100644 --- a/JDR/src/metier/Sorcier.java +++ b/JDR/src/metier/Sorcier.java @@ -1,6 +1,7 @@ package metier; import java.util.Objects; +import java.util.Scanner; import javax.swing.Icon; import javax.swing.JOptionPane; @@ -10,7 +11,21 @@ import javax.swing.JOptionPane; */ public class Sorcier extends Personnage { - private String baguette; + private String baguette; + private String enigme; + 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") + }; public Sorcier(String nom, String img, int energie, int dureeVie, String baguette) { super(nom, img, energie, dureeVie); @@ -78,4 +93,24 @@ public class Sorcier extends Personnage { JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE, imgPerso); return message; } + + @Override + public String rencontrer(Personnage unPerso){ + Scanner LectureClavier =new Scanner(System.in); + String titre = this.getNom() + " rencontre " + unPerso.getNom(); + String message = "Je vais te détruire"; + JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE); + //Icon imgPerso = new javax.swing.ImageIcon(getClass().getResource("/img/" + this.getImg())); + //JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE, imgPerso); + Enigme enigm = enigmes1[(int)(Math.random() * 3)]; + System.out.println(enigm.Question()); + String reponse = LectureClavier.nextLine(); + if (reponse.equals(enigm.Reponse())){ + unPerso.varierDureeVie(1); + } + else{ + unPerso.varierDureeVie(-2); + } + return message; + } } diff --git a/JDR/src/metier/Voleur.java b/JDR/src/metier/Voleur.java index 5266101..b1e5588 100644 --- a/JDR/src/metier/Voleur.java +++ b/JDR/src/metier/Voleur.java @@ -108,5 +108,14 @@ public class Voleur extends Personnage{ } + public String saluer(Personnage unPerso){ + String titre = this.getNom() + " salue " + unPerso.getNom(); + String message = "Bonjour " + unPerso.getNom() + " Comment allez-vous ajourd'hui"; + //JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE); + Icon imgPerso = new javax.swing.ImageIcon(getClass().getResource("/img/" + this.getImg())); + JOptionPane.showMessageDialog(null, message, titre, JOptionPane.INFORMATION_MESSAGE, imgPerso); + return message; + } + }