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