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 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{ reponse=Clavier.entrerClavierInt(); }catch (Exception e) { System.in.read(); } switch (reponse) { case 1: degat = perso.attaquer(mons, lab); System.out.println("Vous infligez "+degat+" a  votre adversaire."); if (!mons.isVivant()) { perso.setpVie(perso.getpVieMax()+1); perso.soin(); perso.getSalle().cle(lab); System.out.println(perso.remplirBourse()); 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 preparez vous ! "); System.out.println("il vous inflige "+ mons.attaquer(perso,lab)+"."); if (!perso.isVivant()) { 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 a  bout, achevez le !"); } break; case 2 : if (!perso.getPotion().isEmpty()) { perso.utiliser(perso.getPotion().remove(0)); System.out.println("Vous utilisez une potion. Votre vie est maintenant au maximum."); } else { System.out.println("Il ne vous reste plus de potion."); } break; case 3 : 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 echec !"); } } } } public Labyrinthe menuStartGame() { 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(); case 2: Generateur ge = new Generateur(); return ge.labyrinthe(); default : return null; } } public Personnage menuSelection(Labyrinthe lab) { System.out.println("Bonjour Etranger, je suis le narrateur de votre histoire. Comment dois-je vous appeler ? "); int i = 0; for (Personnage per : lab.listePersonnage) { System.out.println(i++ + ") "+per.getNom()); } Personnage pers; try{ pers =lab.listePersonnage.get(Clavier.entrerClavierInt()); } catch(Exception e) { System.out.println("Le personnage dont vous me parlez n'existe pas."); return null; } System.out.println("Enchante de vous rencontrer "+pers.getNom()+"."); return pers; } 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": 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": 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": 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": 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 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 "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'armure ?"); int valeur = Clavier.entrerClavierInt(); 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 ; } } }