From 9e9f77c5447e0488bb127d402c9bd9b0cf746b85 Mon Sep 17 00:00:00 2001 From: Theo_Dubo Date: Sun, 26 May 2019 01:14:10 +0200 Subject: [PATCH] =?UTF-8?q?modification=20des=20menus,=20ajout=20du=20menu?= =?UTF-8?q?=20jeu,=20mise=20en=20place=20d'une=20m=C3=A9thode=20main,=20co?= =?UTF-8?q?rrections=20mineures,=20affichages=20des=20d=C3=A9placements?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/modeles/Clavier.java | 2 +- .../PROJET-PMT_STRI1A/src/modeles/Marche.java | 7 +- JAVA/PROJET-PMT_STRI1A/src/modeles/Menu.java | 157 +++++++++++++----- .../src/modeles/Monstre.java | 2 +- .../src/modeles/Personnage.java | 2 +- JAVA/PROJET-PMT_STRI1A/src/modeles/Porte.java | 6 +- JAVA/PROJET-PMT_STRI1A/src/modeles/Salle.java | 12 +- JAVA/PROJET-PMT_STRI1A/src/modeles/main.java | 19 +-- 8 files changed, 138 insertions(+), 69 deletions(-) diff --git a/JAVA/PROJET-PMT_STRI1A/src/modeles/Clavier.java b/JAVA/PROJET-PMT_STRI1A/src/modeles/Clavier.java index ab7aa9a..0a3d448 100644 --- a/JAVA/PROJET-PMT_STRI1A/src/modeles/Clavier.java +++ b/JAVA/PROJET-PMT_STRI1A/src/modeles/Clavier.java @@ -17,7 +17,7 @@ public class Clavier { return chaine; } - public static int entrerClavierInt() { + static int entrerClavierInt() { int entier=0; try { entier = scanner.nextInt(); diff --git a/JAVA/PROJET-PMT_STRI1A/src/modeles/Marche.java b/JAVA/PROJET-PMT_STRI1A/src/modeles/Marche.java index 5bfb5c0..176699e 100644 --- a/JAVA/PROJET-PMT_STRI1A/src/modeles/Marche.java +++ b/JAVA/PROJET-PMT_STRI1A/src/modeles/Marche.java @@ -16,7 +16,11 @@ public class Marche extends Salle { // TODO Auto-generated constructor stub } - public String creerObjetsAVendre(Labyrinthe lab) { + public String getType() { + return "Marche"; + } + + public static String creerObjetsAVendre(Labyrinthe lab) { String listeSarme=""; String listeSarmure=""; String listeobjet=""; @@ -27,7 +31,6 @@ public class Marche extends Salle { for (Armure armure : lab.listeArmure) listeSarmure +=j++ +") "+ armure.getNom()+ " au prix de : " + armure.getPrix()+"\n"; - listeobjet = "Armes :\n" + listeSarme + "\nArmures :\n" + listeSarmure; return listeobjet; diff --git a/JAVA/PROJET-PMT_STRI1A/src/modeles/Menu.java b/JAVA/PROJET-PMT_STRI1A/src/modeles/Menu.java index 6862769..50ec2e2 100644 --- a/JAVA/PROJET-PMT_STRI1A/src/modeles/Menu.java +++ b/JAVA/PROJET-PMT_STRI1A/src/modeles/Menu.java @@ -1,13 +1,34 @@ package modeles; +import javafx.util.*; import java.io.IOException; import java.util.Random; public class Menu { + + public void menuJeu() { + Labyrinthe lab=menuStartGame(); + Marche marche= (Marche) lab.listePorte.get(0).getSalle1(); + Personnage perso = menuSelection(lab); + perso.setSalle(lab.listePorte.get(0).getSalle1()); + try { + do { + Menudeplacement(perso, perso.getSalle(),lab); + if (perso.getSalle().getType().contentEquals("Marche")) { + MenuMarche(perso, lab); + } + }while(perso.isVivant() && !perso.getSalle().estSortie()); + }catch (Exception e) { + System.out.println(e); + menuJeu(); + } + if (perso.isVivant()) System.out.println("Felicitation vous avez vaincu le grand Neltharion ! Vous avez sauver Azeroth"); + } + public String menuCombat(Monstre mons, Personnage perso, Labyrinthe lab) throws IOException { int degat; int reponse = 0; - System.out.println("Un monstre du nom de "+mons.getNom()+" se présente devant vous et il est trés en colère :"); + System.out.println("Un monstre du nom de "+mons.getNom()+" se presente devant vous et il est tres en colere :"); while (true){ System.out.println("\t - 1 attaquer\n\t - 2 Potion \n\t- 3 Fuir"); try{ @@ -18,27 +39,29 @@ public class Menu { switch (reponse) { case 1: degat = perso.attaquer(mons, lab); - System.out.println("Vous avez infligé "+degat+" à votre adversaire."); + System.out.println("Vous infligez "+degat+" a  votre adversaire."); if (!mons.isVivant()) { - perso.salle.cle(lab); + perso.setpVie(perso.getpVieMax()+1); + perso.soin(); + perso.getSalle().cle(lab); System.out.println(perso.remplirBourse()); - return "Votre ennemie trépasse et vous obtenez la clé des portes de la salle."; + return "Votre ennemie trepasse et vous obtenez la cle des portes de la salle."; } else { - System.out.println("Au tour de votre adversaire. Il attaque préparez vous ! "); + System.out.println("Au tour de votre adversaire. Il attaque preparez vous ! "); System.out.println("il vous inflige "+ mons.attaquer(perso,lab)+"."); if (!perso.isVivant()) { - return "C'est ainsi que vous trépassez sous les coups des ténèbres. Reposez vous héros... Vous avez l'�ternit�."; + return "C'est ainsi que vous trepassez sous les coups des tenebres. Reposez vous heros... Vous avez l'eternite."; } - else System.out.println("votre ennemie n'est pas encore à bout achever le !"); + else System.out.println("votre ennemie n'est pas encore a  bout, achevez le !"); } break; case 2 : if (!perso.getPotion().isEmpty()) { perso.utiliser(perso.getPotion().remove(0)); - System.out.println("Vous avez utilisé une potion. Votre vie est maintenant au maximum."); + System.out.println("Vous utilisez une potion. Votre vie est maintenant au maximum."); } else { - System.out.println("Il ne vous reste plus de potion. Désolé."); + System.out.println("Il ne vous reste plus de potion."); } break; @@ -46,9 +69,10 @@ public class Menu { System.out.println("Vous tentez de fuir."); Random rd = new Random(); if (rd.nextInt(100)<50) { + perso.soin(); return "Vous avez fuit."; } else { - System.out.println("Ce fut un échec !"); + System.out.println("Ce fut un echec !"); } } @@ -56,7 +80,7 @@ public class Menu { } public Labyrinthe menuStartGame() { - System.out.println("L'Aventure vous appelle ! Le choix s'offre à vous, une histoire peut s'écrire une autre peut continuer :\n1) Nouvelle Partie\n2) Continuer votre progression"); + System.out.println("L'Aventure vous appelle ! Le choix s'offre a  vous, une histoire peut s'ecrire une autre peut continuer :\n1) Nouvelle Partie\n2) Continuer votre progression"); switch(Clavier.entrerClavierInt()) { case 1: return new Labyrinthe(); @@ -87,55 +111,106 @@ public class Menu { return pers; } - public void deplacement(Personnage perso, Salle salle) { + public void Menudeplacement(Personnage perso, Salle salle,Labyrinthe lab) throws IOException { System.out.println("Choisissez une direction:\n Z) Haut\n S) Bas\n D) Droite\n Q) Gauche"); + Salle s; + Pairnext; + String csb=""; switch(Clavier.entrerClavierString()) { case "Z": - System.out.println("Vous allez vers le haut"); - perso.seDeplacer(salle); + next=new Pair(salle.getCoordonnes().getKey(),salle.getCoordonnes().getValue()+1); + if((s=salle.findNextSalle(next, lab))==null){ + System.out.println("Je ne connais pas cette salle"); + Menudeplacement(perso, salle, lab); + break; + } + while (!s.estVide() && perso.isVivant() && csb.contentEquals("Vous avez fuit.")) { + Monstre mons =lab.listeMonstre.get(s.getListeEnnemie().remove(0)); + csb=menuCombat(mons, perso, lab); + } + if (perso.isVivant()) { + System.out.println("vous vous déplacez"); + perso.seDeplacer(s); + } break; case "S": - System.out.println("Vous allez vers le bas"); - perso.seDeplacer(salle); + next=new Pair(salle.getCoordonnes().getKey(),salle.getCoordonnes().getValue()-1); + if((s=salle.findNextSalle(next, lab))==null){ + System.out.println("Je ne connais pas cette salle"); + Menudeplacement(perso, salle, lab); + break; + } + while (!s.estVide() && perso.isVivant() && csb.contentEquals("Vous avez fuit.")) { + Monstre mons =lab.listeMonstre.get(s.getListeEnnemie().remove(0)); + csb=menuCombat(mons, perso, lab); + } + if (perso.isVivant()) { + System.out.println("vous vous déplacez"); + perso.seDeplacer(s); + } break; case "D": - System.out.println("Vous allez vers le droite"); - perso.seDeplacer(salle); + next=new Pair(salle.getCoordonnes().getKey()+1,salle.getCoordonnes().getValue()); + if((s=salle.findNextSalle(next, lab))==null){ + System.out.println("Je ne connais pas cette salle"); + Menudeplacement(perso, salle, lab); + break; + } + while (!s.estVide() && perso.isVivant() && csb.contentEquals("Vous avez fuit.")) { + Monstre mons =lab.listeMonstre.get(s.getListeEnnemie().remove(0)); + csb=menuCombat(mons, perso, lab); + } + if (perso.isVivant()) { + System.out.println("vous vous déplacez"); + perso.seDeplacer(s); + } break; case "Q": - System.out.println("Vous allez vers le gauche"); - perso.seDeplacer(salle); + next=new Pair(salle.getCoordonnes().getKey()-1,salle.getCoordonnes().getValue()); + if((s=salle.findNextSalle(next, lab))==null){ + System.out.println("Je ne connais pas cette salle"); + Menudeplacement(perso, salle, lab); + break; + } + while (!s.estVide() && perso.isVivant() && csb.contentEquals("Vous avez fuit.")) { + Monstre mons =lab.listeMonstre.get(s.getListeEnnemie().remove(0)); + csb=menuCombat(mons, perso, lab); + } + if (perso.isVivant()) { + System.out.println("vous vous déplacez"); + perso.seDeplacer(s); + } break; + default : + System.out.println("erreur de lecture"); } + System.out.println("Vous etes à la salle de coordonnes "+perso.getSalle().getCoordonnes().getKey()+" "+perso.getSalle().getCoordonnes().getValue()+"."); } - public void Menu_Marche(Marche marche,Personnage perso, Labyrinthe lab) { + public void MenuMarche(Personnage perso, Labyrinthe lab) { System.out.println("Voulez-vous acheter un objet:(votre bourse :"+perso.getValeurBourse() +")\n1) Oui\n2) Non"); switch(Clavier.entrerClavierString()) { - case "a": - System.out.println("Choisissez un objet:"); - switch(Clavier.entrerClavierString()) { - case "1": - System.out.println(marche.creerObjetsAVendre(lab)+"\nVoulez-vous acheter une arme ? (oui/non)"); - String selection=Clavier.entrerClavierString(); + case "1": + System.out.println(Marche.creerObjetsAVendre(lab)+"\nVoulez-vous acheter une arme ? (oui/non)"); + String selection=Clavier.entrerClavierString(); + if(selection.compareTo("oui")>0) { + System.out.println("Quel numéro pour l'arme ?"); + int valeur = Clavier.entrerClavierInt(); + if (perso.getBourse().Achat(lab.listeArme.get(valeur))>=0) perso.equiper(lab.listeArme.get(valeur),lab); + } else { + System.out.println("Pourquoi Pas une armure alors ? (oui/non)"); + selection=Clavier.entrerClavierString(); if(selection.compareTo("oui")>0) { - System.out.println("Quel numéro pour l'arme ?"); + System.out.println("Quel numéro pour l'armure ?"); int valeur = Clavier.entrerClavierInt(); - if (perso.getBourse().Achat(lab.listeArme.get(valeur))>=0) perso.equiper(lab.listeArme.get(valeur),lab); - } else { - System.out.println("Pourquoi Pas une armure alors ? (oui/non)"); - selection=Clavier.entrerClavierString(); - if(selection.compareTo("oui")>0) { - System.out.println("Quel numéro pour l'armure ?"); - int valeur = Clavier.entrerClavierInt(); - if (perso.getBourse().Achat(lab.listeArmure.get(valeur))>=0) perso.equiper(lab.listeArmure.get(valeur),lab); - } + if (perso.getBourse().Achat(lab.listeArmure.get(valeur))>=0) perso.equiper(lab.listeArmure.get(valeur),lab); } - break; - case "2": - System.out.println("Vous sortez du marche."); - return ; } + break; + case "2": + System.out.println("Vous sortez du marche."); + return ; } } } + diff --git a/JAVA/PROJET-PMT_STRI1A/src/modeles/Monstre.java b/JAVA/PROJET-PMT_STRI1A/src/modeles/Monstre.java index 5e7ea48..af4c263 100644 --- a/JAVA/PROJET-PMT_STRI1A/src/modeles/Monstre.java +++ b/JAVA/PROJET-PMT_STRI1A/src/modeles/Monstre.java @@ -20,7 +20,7 @@ public class Monstre extends EtreVivant { public int attaquer(Personnage def,Labyrinthe lab) { int pAttaqueLoc; - if (lab.listeArmure.get(def.getArmure())!=null) pAttaqueLoc=this.getpAttaque()-(lab.listeArmure.get(def.getArmure()).getpArmure()); + if (def.getArmure()>=0) pAttaqueLoc=this.getpAttaque()-(lab.listeArmure.get(def.getArmure()).getpArmure()); else pAttaqueLoc=this.getpAttaque(); def.pVie-=pAttaqueLoc; if (def.pVie<=0)def.setVivant(false); diff --git a/JAVA/PROJET-PMT_STRI1A/src/modeles/Personnage.java b/JAVA/PROJET-PMT_STRI1A/src/modeles/Personnage.java index e53bdb1..864c963 100644 --- a/JAVA/PROJET-PMT_STRI1A/src/modeles/Personnage.java +++ b/JAVA/PROJET-PMT_STRI1A/src/modeles/Personnage.java @@ -20,7 +20,7 @@ public class Personnage extends EtreVivant { public void equiper(Arme arme,Labyrinthe lab) { this.arme=lab.listeArme.indexOf(arme); } -public void equiper(Armure armure,Labyrinthe lab) { + public void equiper(Armure armure,Labyrinthe lab) { this.armure=lab.listeArmure.indexOf(armure); } diff --git a/JAVA/PROJET-PMT_STRI1A/src/modeles/Porte.java b/JAVA/PROJET-PMT_STRI1A/src/modeles/Porte.java index db4fbe8..cbc3e33 100644 --- a/JAVA/PROJET-PMT_STRI1A/src/modeles/Porte.java +++ b/JAVA/PROJET-PMT_STRI1A/src/modeles/Porte.java @@ -14,10 +14,10 @@ public class Porte { super(); this.ouvert = ouvert; this.salle1 = salle; - this.salle1.getListePorte().add(this.id); + this.salle1.getListePorte().add(id); this.salle2 = salle2; - this.salle2.getListePorte().add(this.id); - this.id++; + this.salle2.getListePorte().add(id); + id++; } diff --git a/JAVA/PROJET-PMT_STRI1A/src/modeles/Salle.java b/JAVA/PROJET-PMT_STRI1A/src/modeles/Salle.java index c12a4c0..a017e05 100644 --- a/JAVA/PROJET-PMT_STRI1A/src/modeles/Salle.java +++ b/JAVA/PROJET-PMT_STRI1A/src/modeles/Salle.java @@ -2,8 +2,9 @@ package modeles; import java.util.ArrayList; import java.util.List; -//import javafx.util.Pair; -import org.javatuples.*; + +import javafx.util.Pair; + public class Salle { private Pair coordonnees; @@ -17,6 +18,7 @@ public class Salle { } + public List getListeEnnemie() { return listeEnnemie; } @@ -52,4 +54,10 @@ public class Salle { public List getListePorte() { return this.listePorte; } + public Salle findNextSalle(Pair coordonnes,Labyrinthe lab) { + for (int porte : listePorte) { + if (lab.listePorte.get(porte).prochainSaut(this).coordonnees.equals(coordonnes)) return lab.listePorte.get(porte).prochainSaut(this); + } + return null; + } } diff --git a/JAVA/PROJET-PMT_STRI1A/src/modeles/main.java b/JAVA/PROJET-PMT_STRI1A/src/modeles/main.java index 3731ff9..81e3c9b 100644 --- a/JAVA/PROJET-PMT_STRI1A/src/modeles/main.java +++ b/JAVA/PROJET-PMT_STRI1A/src/modeles/main.java @@ -7,24 +7,7 @@ public class main { public static void main(String[] args) throws IOException { Menu menu = new Menu(); - Labyrinthe lab=menu.menuStartGame(); - - - Marche marche= (Marche) lab.listePorte.get(0).getSalle1(); - System.out.println(marche.creerObjetsAVendre(lab)); - - Personnage perso = menu.menuSelection(lab); - perso.setSalle(lab.listePorte.get(0).getSalle1()); - Salle next =lab.listePorte.get(perso.getSalle().getListePorte().get(0)).prochainSaut(perso.getSalle()); - - System.out.println(menu.menuCombat(lab.listeMonstre.get(next.getListeEnnemie().get(0)), perso, lab)); - perso.setSalle(next); - menu.deplacement(perso,next); - System.out.println("le personnage à bouger"); - - //Clavier.entrerClavierInt(); - //menu.menuCombat(lab.listeMonstre.get(0), lab.listePersonnage.get(0), lab); - //menu.menuSelection(lab); + menu.menuJeu(); }