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;
+ }
+
}