modification des menus, ajout du menu jeu, mise en place d'une méthode main, corrections mineures, affichages des déplacements

This commit is contained in:
Theo_Dubo 2019-05-26 01:14:10 +02:00
parent 12b8b22fd6
commit 9e9f77c544
8 changed files with 138 additions and 69 deletions

View File

@ -17,7 +17,7 @@ public class Clavier {
return chaine;
}
public static int entrerClavierInt() {
static int entrerClavierInt() {
int entier=0;
try {
entier = scanner.nextInt();

View File

@ -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;

View File

@ -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;
Pair<Integer,Integer>next;
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 ;
}
}
}

View File

@ -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);

View File

@ -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);
}

View File

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

View File

@ -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<Integer,Integer> coordonnees;
@ -17,6 +18,7 @@ public class Salle {
}
public List<Integer> getListeEnnemie() {
return listeEnnemie;
}
@ -52,4 +54,10 @@ public class Salle {
public List<Integer> getListePorte() {
return this.listePorte;
}
public Salle findNextSalle(Pair<Integer,Integer> 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;
}
}

View File

@ -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();
}