@ -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 pr esente devant vous et il est tres en cole re :") ;
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 tr epasse 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 pr e parez 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 tr epassez 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 e chec !") ;
}
}
@ -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'e crire 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 Menu deplacement( 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 Menu Marche( 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'arm ur e ?") ;
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 ;
}
}
}