dernières corrections : pour la sauvegarde entrer le bon chemin du fichier json

correction
Theo_Dubo 6 years ago
parent bc8652d0ff
commit ba87310916

@ -7,94 +7,13 @@ import java.io.IOException;
import java.util.Random; import java.util.Random;
public class Menu { public class Menu {
public void menuJeu() {
Labyrinthe lab=menuStartGame();
Marche marche= (Marche) lab.getListePorte().get(0).getSalle1();
Personnage perso = menuSelection(lab);
boolean jeu=true;
perso.setSalle(lab.getListePorte().get(0).getSalle1());
try {
do {
jeu=Menudeplacement(perso, perso.getSalle(),lab);
if (perso.getSalle().getType().contentEquals("Marche") && perso.isVivant()) {
lab.restore();
MenuMarche(perso, lab);
}
}while(perso.isVivant() && !perso.getSalle().estSortie() && jeu);
}catch (Exception e) {
System.out.println(e);
}
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 \nIl lui reste : "+mons.getpVie()+"\nIl vous reste : "+perso.getpVie()+"\nVous avez "+perso.getPotion().size()+" potion.");
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.setpVieMax(perso.getpVieMax()+1);
perso.soin();
mons.soin();
System.out.println(perso.remplirBourse());
return "Votre ennemie trepasse.";
} 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 ! \nIl lui reste :"+mons.getpVie()+"\nIl vous reste :"+perso.getpVie()+"\nVous avez "+perso.getPotion().size()+" potion.");
}
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 !");
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 ! \nIl lui reste :"+mons.getpVie()+"\nIl vous reste :"+perso.getpVie()+"\nVous avez "+perso.getPotion().size()+" potion.");
}
}
}
}
public Labyrinthe menuStartGame() { 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"); 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()) { switch(Clavier.entrerClavierInt()) {
case 1: case 1:
return new Labyrinthe(); return new Labyrinthe(20);
case 2: case 2:
Generateur ge = new Generateur(); Sauvegarde ge = new Sauvegarde();
return ge.labyrinthe(); return ge.labyrinthe();
default : default :
return null; return null;
@ -120,8 +39,9 @@ public class Menu {
return pers; return pers;
} }
public boolean Menudeplacement(Personnage perso, Salle salle,Labyrinthe lab) throws IOException { public boolean Menudeplacement(Personnage perso, Salle salle,Labyrinthe lab) throws IOException {
Generateur gene =new Generateur(); Sauvegarde gene =new Sauvegarde();
System.out.println("Choisissez une direction:\n Z) Haut\n S) Bas\n D) Droite\n Q) Gauche\n X) sauvegarder et quitter"); System.out.println("Choisissez une direction:\n Z) Haut\n S) Bas\n D) Droite\n Q) Gauche\n X) sauvegarder et quitter");
Salle s; Salle s;
Monstre mons; Monstre mons;
@ -132,7 +52,7 @@ public class Menu {
next=new Pair(salle.getCoordonnes().getKey(),salle.getCoordonnes().getValue()+1); next=new Pair(salle.getCoordonnes().getKey(),salle.getCoordonnes().getValue()+1);
if((s=salle.findNextSalle(next, lab))==null){ if((s=salle.findNextSalle(next, lab))==null){
System.out.println("Je ne connais pas cette salle"); System.out.println("Je ne connais pas cette salle");
Menudeplacement(perso, salle, lab); return true;
} }
while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) { while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
mons=lab.getListeMonstre().get(s.getListeEnnemie().get(0)); mons=lab.getListeMonstre().get(s.getListeEnnemie().get(0));
@ -150,12 +70,12 @@ public class Menu {
} }
} }
break; break;
case "S": case "S":
next=new Pair(salle.getCoordonnes().getKey(),salle.getCoordonnes().getValue()-1); next=new Pair(salle.getCoordonnes().getKey(),salle.getCoordonnes().getValue()-1);
if((s=salle.findNextSalle(next, lab))==null){ if((s=salle.findNextSalle(next, lab))==null){
System.out.println("Je ne connais pas cette salle"); System.out.println("Je ne connais pas cette salle");
Menudeplacement(perso, salle, lab); return true;
break;
} }
while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) { while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
mons =lab.getListeMonstre().get(s.getListeEnnemie().get(0)); mons =lab.getListeMonstre().get(s.getListeEnnemie().get(0));
@ -170,14 +90,14 @@ public class Menu {
if (!csb.isEmpty()) { if (!csb.isEmpty()) {
System.out.println("Un objet traine sur le sol... c'est la cle de la salle ! Desormais vous pouvez vous deplacer dans les salles alentours."); System.out.println("Un objet traine sur le sol... c'est la cle de la salle ! Desormais vous pouvez vous deplacer dans les salles alentours.");
perso.getSalle().cle(lab); perso.getSalle().cle(lab);
} } }
}
break; break;
case "D": case "D":
next=new Pair(salle.getCoordonnes().getKey()+1,salle.getCoordonnes().getValue()); next=new Pair(salle.getCoordonnes().getKey()+1,salle.getCoordonnes().getValue());
if((s=salle.findNextSalle(next, lab))==null){ if((s=salle.findNextSalle(next, lab))==null){
System.out.println("Je ne connais pas cette salle"); System.out.println("Je ne connais pas cette salle");
Menudeplacement(perso, salle, lab); return true;
break;
} }
while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) { while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
mons =lab.getListeMonstre().get(s.getListeEnnemie().get(0)); mons =lab.getListeMonstre().get(s.getListeEnnemie().get(0));
@ -198,8 +118,7 @@ public class Menu {
next=new Pair(salle.getCoordonnes().getKey()-1,salle.getCoordonnes().getValue()); next=new Pair(salle.getCoordonnes().getKey()-1,salle.getCoordonnes().getValue());
if((s=salle.findNextSalle(next, lab))==null){ if((s=salle.findNextSalle(next, lab))==null){
System.out.println("Je ne connais pas cette salle"); System.out.println("Je ne connais pas cette salle");
Menudeplacement(perso, salle, lab); return true;
break;
} }
while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) { while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
mons =lab.getListeMonstre().get(s.getListeEnnemie().get(0)); mons =lab.getListeMonstre().get(s.getListeEnnemie().get(0));
@ -232,6 +151,7 @@ public class Menu {
return true; return true;
} }
public void MenuMarche(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"); System.out.println("Voulez-vous acheter un objet:(votre bourse :"+perso.getValeurBourse() +")\n1) Oui\n2) Non");
switch(Clavier.entrerClavierString()) { switch(Clavier.entrerClavierString()) {
@ -256,4 +176,100 @@ public class Menu {
System.out.println("Vous sortez du marche."); System.out.println("Vous sortez du marche.");
} }
} }
public void menuJeu() {
Labyrinthe lab=menuStartGame();
Marche marche= (Marche) lab.getListePorte().get(0).getSalle1();
Personnage perso = menuSelection(lab);
boolean jeu=true;
perso.setSalle(lab.getListePorte().get(0).getSalle1());
try {
do {
jeu=Menudeplacement(perso, perso.getSalle(),lab);
if (perso.getSalle().getType().contentEquals("Marche") && perso.isVivant()) {
lab.restore();
MenuMarche(perso, lab);
}
}while(perso.isVivant() && !perso.getSalle().estSortie() && jeu);
}catch (Exception e) {
System.out.println(e);
}
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;
Random rd =new Random();
int reponse = 0;
System.out.println("Un monstre du nom de "+mons.getNom()+" se presente devant vous et il est tres en colere \nIl lui reste : "+mons.getpVie()+"\nIl vous reste : "+perso.getpVie()+"\nVous avez "+perso.getPotion().size()+" potion.");
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.setpVieMax(perso.getpVieMax()+1);
perso.soin();
mons.soin();
mons.setVivant(true);
if (rd.nextInt(100)<=30) {
perso.gagnerUnePotion();
}
System.out.println(perso.remplirBourse());
return "Votre ennemie trepasse.";
} 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 ! \nIl lui reste :"+mons.getpVie()+"\nIl vous reste :"+perso.getpVie()+"\nVous avez "+perso.getPotion().size()+" potion.");
}
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.");
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 ! \nIl lui reste :"+mons.getpVie()+"\nIl vous reste :"+perso.getpVie()+"\nVous avez "+perso.getPotion().size()+" potion.");
} else {
System.out.println("Il ne vous reste plus de potion.");
}
break;
case 3 :
System.out.println("Vous tentez de fuir.");
if (rd.nextInt(100)<50) {
perso.soin();
return "Vous avez fuit.";
} else {
System.out.println("Ce fut un echec !");
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 ! \nIl lui reste :"+mons.getpVie()+"\nIl vous reste :"+perso.getpVie()+"\nVous avez "+perso.getPotion().size()+" potion.");
}
}
}
}
} }

@ -12,132 +12,26 @@ public class Labyrinthe {
protected List<Porte> listePorte=new ArrayList<Porte>(); protected List<Porte> listePorte=new ArrayList<Porte>();
protected List<Monstre> listeMonstre=new ArrayList<Monstre>(); protected List<Monstre> listeMonstre=new ArrayList<Monstre>();
public Labyrinthe() { public Labyrinthe(int nb){
test(17);
}
public List<Monstre> getListeMonstre() {
return listeMonstre;
}
public List<Personnage> getListePersonnage() {
return listePersonnage;
}
public List<Arme> getListeArme() {
return listeArme;
}
public List<Armure> getListeArmure() {
return listeArmure;
}
public List<Porte> getListePorte() {
return listePorte;
}
public void labyrinthe1() {
Arme arme=new Arme("Epee en bois",25,10,2);
listeArme.add(arme);
Arme arme1=new Arme("Epee en acier",100,10,4);
listeArme.add(arme1);
Arme arme2=new Arme("Epee en acier solide",200,20,4);
listeArme.add(arme2);
Arme arme3=new Arme("Epee de cristal",150,5,7);
listeArme.add(arme3);
Arme arme4=new Arme("Lame Blanche",500,30,10);
listeArme.add(arme4);
Armure armure1=new Armure("armure de cuir",70,10,5);
listeArmure.add(armure1);
Armure armure=new Armure("armure en papier",30,5,2);
listeArmure.add(armure);
Armure armure2=new Armure("armure de fer",100,10,5);
listeArmure.add(armure2);
Armure armure3=new Armure("Le kevlar",300,15,8);
listeArmure.add(armure3);
Personnage perso=new Personnage("Aramis",10,1);
listePersonnage.add(perso);
Personnage perso2=new Personnage("Boromis",8,2);
listePersonnage.add(perso2);
Monstre mons = new Monstre("pantin en bois",5, 1);
Monstre mons2= new Monstre("araignee geante agressive", 7, 5);
Monstre mons3=new Monstre("pantin de fer",40,1);
Monstre mons4 = new Monstre("Golem de Jade",40, 3);
Monstre mons5 = new Monstre("Neltharion le Gardeterre",100,10);
Monstre mons6 = new Monstre("Neltharion, le Destructeur", 80,20);
this.listeMonstre.add(mons);
this.listeMonstre.add(mons2);
this.listeMonstre.add(mons3);
this.listeMonstre.add(mons4);
this.listeMonstre.add(mons5);
this.listeMonstre.add(mons6);
Marche marche = new Marche();
List<Integer>table=new ArrayList<Integer>();
Random rd= new Random();
for (int i = 0; i<rd.nextInt(this.listeMonstre.size());i++) {
table.add(rd.nextInt(this.listeMonstre.size()-3));
}
Salle salle1 = new Salle(1,0,false,table);
Porte po = new Porte(true,marche,salle1);
listePorte.add(po);
List<Integer>table2=new ArrayList<Integer>();
for (int i = 0; i<rd.nextInt(this.listeMonstre.size());i++) {
table2.add(rd.nextInt(this.listeMonstre.size()-3));
}
Salle salle2 = new Salle(0,1,false, table2);
Porte po2= new Porte(true,marche,salle2);
listePorte.add(po2);
List<Integer>table3=new ArrayList<Integer>();
for (int i = 0; i<rd.nextInt(this.listeMonstre.size());i++) {
table3.add(rd.nextInt(this.listeMonstre.size()-3));
}
Salle salle3 = new Salle(1,1,false, table3);
Porte po3= new Porte(true,salle3,salle2);
listePorte.add(po3);
List<Integer>table4=new ArrayList<Integer>();
for (int i = 0; i<rd.nextInt(this.listeMonstre.size());i++) {
table4.add(rd.nextInt(this.listeMonstre.size()-3));
}
Salle salle4 = new Salle(2,0,false, table4);
Porte po4= new Porte(true,salle4,salle1);
listePorte.add(po4);
List<Integer>table5=new ArrayList<Integer>();
for (int i = 0; i<2;i++) {
table5.add(listeMonstre.size()-2+i);
}
Salle salle5 = new Salle(2,1,true, table5);
Porte po5= new Porte(true,salle4,salle5);
listePorte.add(po5);
Porte po6= new Porte(true,salle5,salle3);
listePorte.add(po6);
}
public void test(int nb){
int nbSalle =nb; int nbSalle =nb;
Arme arme=new Arme("Epee en bois",5,10,2); Arme arme=new Arme("Epee en bois",25,10,2);
listeArme.add(arme); listeArme.add(arme);
Arme arme1=new Arme("Epee en acier",15,10,4); Arme arme1=new Arme("Epee en acier",50,10,4);
listeArme.add(arme1); listeArme.add(arme1);
Arme arme2=new Arme("Epee en acier solide",25,20,4); Arme arme2=new Arme("Epee en acier solide",75,20,4);
listeArme.add(arme2); listeArme.add(arme2);
Arme arme3=new Arme("Epee de cristal",30,5,7); Arme arme3=new Arme("Epee de cristal",80,5,7);
listeArme.add(arme3); listeArme.add(arme3);
Arme arme4=new Arme("Lame Blanche",200,30,10); Arme arme4=new Arme("Lame Blanche",300,30,14);
listeArme.add(arme4); listeArme.add(arme4);
Armure armure1=new Armure("armure de cuir",10,10,5); Armure armure1=new Armure("armure de cuir",40,10,5);
listeArmure.add(armure1); listeArmure.add(armure1);
Armure armure=new Armure("armure en papier",5,5,2); Armure armure=new Armure("armure en papier",20,5,2);
listeArmure.add(armure); listeArmure.add(armure);
Armure armure2=new Armure("armure de fer",30,10,5); Armure armure2=new Armure("armure de fer",70,15,7);
listeArmure.add(armure2); listeArmure.add(armure2);
Armure armure3=new Armure("Le kevlar",150,15,8); Armure armure3=new Armure("Le kevlar",230,15,8);
listeArmure.add(armure3); listeArmure.add(armure3);
Personnage perso=new Personnage("Aramis",10,1); Personnage perso=new Personnage("Aramis",10,1);
@ -176,22 +70,31 @@ public class Labyrinthe {
Salle deRelais; Salle deRelais;
Porte porte; Porte porte;
boolean ok=true; boolean ok=true;
Random rd= new Random(); Random rd= new Random();
table= new ArrayList<Integer>(); table= new ArrayList<Integer>();
table.add(0); table.add(0);
table.add(1); table.add(1);
Salle salle1=new Salle(0,1,false,table); Salle salle1=new Salle(0,1,false,table);
ListSalle.add(salle1); ListSalle.add(salle1);
table= new ArrayList<Integer>();
table.add(0);
table.add(1);
Porte porte1=new Porte(true,marche,salle1); Porte porte1=new Porte(true,marche,salle1);
listePorte.add(porte1); listePorte.add(porte1);
salle=new Salle(0,-1,false,table); salle=new Salle(0,-1,false,table);
ListSalle.add(salle); ListSalle.add(salle);
porte= new Porte(true, marche, salle); porte= new Porte(true, marche, salle);
listePorte.add(porte); listePorte.add(porte);
table= new ArrayList<Integer>();
table.add(0);
table.add(1);
Salle salle2=new Salle(1,0,false,table); Salle salle2=new Salle(1,0,false,table);
ListSalle.add(salle2); ListSalle.add(salle2);
Porte port2=new Porte(true,marche,salle2); Porte port2=new Porte(true,marche,salle2);
listePorte.add(port2); listePorte.add(port2);
for (int i = 0; i < nbSalle-4;i++) { for (int i = 0; i < nbSalle-4;i++) {
table= new ArrayList<Integer>(); table= new ArrayList<Integer>();
for (int j = 0; j<rd.nextInt(4);j++) { for (int j = 0; j<rd.nextInt(4);j++) {
@ -203,7 +106,7 @@ public class Labyrinthe {
} else { } else {
salle=new Salle( deRelais.getCoordonnes().getKey(),deRelais.getCoordonnes().getValue()+puissance(-1, rd.nextInt(1)) ,false,table); salle=new Salle( deRelais.getCoordonnes().getKey(),deRelais.getCoordonnes().getValue()+puissance(-1, rd.nextInt(1)) ,false,table);
} }
if (ListSalle.contains(salle)) { if (contents(salle,ListSalle)) {
nbSalle++; nbSalle++;
break; break;
} }
@ -224,7 +127,7 @@ public class Labyrinthe {
} else { } else {
salle=new Salle( deRelais.getCoordonnes().getKey(),deRelais.getCoordonnes().getValue()+puissance(-1, rd.nextInt(1)) ,false,table); salle=new Salle( deRelais.getCoordonnes().getKey(),deRelais.getCoordonnes().getValue()+puissance(-1, rd.nextInt(1)) ,false,table);
} }
if (ListSalle.contains(salle)) ok = true; if (contents(salle,ListSalle)) ok = true;
else { else {
porte=new Porte(false, deRelais, salle); porte=new Porte(false, deRelais, salle);
listePorte.add(porte); listePorte.add(porte);
@ -234,6 +137,26 @@ public class Labyrinthe {
} }
public List<Monstre> getListeMonstre() {
return listeMonstre;
}
public List<Personnage> getListePersonnage() {
return listePersonnage;
}
public List<Arme> getListeArme() {
return listeArme;
}
public List<Armure> getListeArmure() {
return listeArmure;
}
public List<Porte> getListePorte() {
return listePorte;
}
public static int puissance(int a, int p) public static int puissance(int a, int p)
{ {
int result = 1; int result = 1;
@ -245,19 +168,33 @@ public class Labyrinthe {
return(result); return(result);
} }
public void restore() { public void restore() {
Random rd =new Random(); Random rd =new Random();
for (Porte p : listePorte) { for (Porte p : listePorte) {
if (p.getSalle1().estVide() && !p.getSalle1().getType().contentEquals("Marche")) { if (p.getSalle1().estVide() && !p.getSalle1().getType().contentEquals("Marche")) {
for (int i =0; i<rd.nextInt(4);i++) { for (int i =0; i<rd.nextInt(4);i++) {
p.getSalle1().getListeEnnemie().add(rd.nextInt(listeMonstre.size()-3)); p.getSalle1().getListeEnnemie().add(rd.nextInt(listeMonstre.size()-3));
} }
} }
if (p.getSalle1().estVide() && !p.getSalle1().getType().contentEquals("Marche")) { if (p.getSalle1().estVide() && !p.getSalle1().getType().contentEquals("Marche")) {
for (int i =0; i<rd.nextInt(4);i++) { for (int i =0; i<rd.nextInt(4);i++) {
p.getSalle1().getListeEnnemie().add(rd.nextInt(listeMonstre.size()-3)); p.getSalle1().getListeEnnemie().add(rd.nextInt(listeMonstre.size()-3));
} }
} }
} }
} }
public boolean contents(Salle s, List<Salle> ls) {
for (Salle p : ls) {
if(s.equals(p)) return true;
}
return false;
}
} }

@ -4,37 +4,41 @@ package labyrinthe;
*/ */
public class Porte { public class Porte {
private static int id =0; private static int id =0;
private boolean ouvert; private boolean ouvert;
private Salle salle1; private Salle salle1;
private Salle salle2; private Salle salle2;
public Porte(boolean ouvert, Salle salle,Salle salle2) { public Porte(boolean ouvert, Salle salle,Salle salle2) {
super(); super();
this.ouvert = ouvert; this.ouvert = ouvert;
this.salle1 = salle; this.salle1 = salle;
this.salle1.getListePorte().add(id); this.salle1.getListePorte().add(id);
this.salle2 = salle2; this.salle2 = salle2;
this.salle2.getListePorte().add(id); this.salle2.getListePorte().add(id);
id++; id++;
} }
public Salle getSalle1() { public Salle getSalle1() {
return salle1; return salle1;
} }
public Salle getSalle2() { public Salle getSalle2() {
return salle2; return salle2;
} }
public boolean estOuverte() { public boolean estOuverte() {
return ouvert; return ouvert;
} }
public int getId() {
return this.id;
}
public void ouverture() { public void ouverture() {
this.ouvert= true; this.ouvert= true;
} }
@ -44,10 +48,7 @@ public class Porte {
return salle2; return salle2;
} else return salle1; } else return salle1;
} }
public int getId() {
return this.id;
}
} }

@ -17,20 +17,13 @@ public class Salle {
this.coordonnees=new Pair<Integer,Integer>(x,y); this.coordonnees=new Pair<Integer,Integer>(x,y);
this.sortie=out; this.sortie=out;
} }
public boolean equals(Object o) {
return (this.coordonnees.getKey()==((Salle)o).getCoordonnes().getKey() && this.coordonnees.getValue() ==((Salle)o).getCoordonnes().getValue());
}
public List<Integer> getListeEnnemie() {
return listeEnnemie;
}
public Salle(int positionX, int positionY, boolean sortie, List<Integer> listeEnnemie) { public Salle(int positionX, int positionY, boolean sortie, List<Integer> listeEnnemie) {
this.coordonnees=new Pair<Integer,Integer>(positionX,positionY); this.coordonnees=new Pair<Integer,Integer>(positionX,positionY);
this.sortie = sortie; this.sortie = sortie;
this.listeEnnemie = listeEnnemie; this.listeEnnemie = listeEnnemie;
} }
public String getType(){ public String getType(){
return "salle"; return "salle";
} }
@ -42,20 +35,29 @@ public class Salle {
public boolean estSortie() { public boolean estSortie() {
return sortie; return sortie;
} }
public List<Integer> getListePorte() {
return this.listePorte;
}
public List<Integer> getListeEnnemie() {
return listeEnnemie;
}
public boolean equals(Object o) {
return (this.coordonnees.getKey()==((Salle)o).getCoordonnes().getKey() && this.coordonnees.getValue() ==((Salle)o).getCoordonnes().getValue());
}
public void cle(Labyrinthe lab) { public void cle(Labyrinthe lab) {
//if (listeEnnemie.isEmpty()=null) {
for (int i : listePorte ) lab.listePorte.get(i).ouverture(); for (int i : listePorte ) lab.listePorte.get(i).ouverture();
//}
} }
public boolean estVide() { public boolean estVide() {
return (listeEnnemie.size()==0); return (listeEnnemie.size()==0);
} }
public List<Integer> getListePorte() {
return this.listePorte;
}
public Salle findNextSalle(Pair<Integer,Integer> coordonnes,Labyrinthe lab) { public Salle findNextSalle(Pair<Integer,Integer> coordonnes,Labyrinthe lab) {
for (int porte : listePorte) { for (int porte : listePorte) {
if (lab.listePorte.get(porte).prochainSaut(this).coordonnees.equals(coordonnes)) return lab.listePorte.get(porte).prochainSaut(this); if (lab.listePorte.get(porte).prochainSaut(this).coordonnees.equals(coordonnes)) return lab.listePorte.get(porte).prochainSaut(this);

@ -12,7 +12,7 @@ import java.io.PrintWriter;
import com.google.gson.Gson; import com.google.gson.Gson;
public class Generateur { public class Sauvegarde {
public Labyrinthe labyrinthe() { public Labyrinthe labyrinthe() {
BufferedReader bfr= null; BufferedReader bfr= null;
@ -22,12 +22,13 @@ public class Generateur {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
//FileReader file = new FileReader(json);
Gson gson = new Gson(); Gson gson = new Gson();
//String str="{\"positionX\":0,\"positionY\":0,\"sortie\":false,\"monstre\":[{\"nom\":\"premier monstre\",\"pAttaque\":5}],\"porte\":[{\"ouvert\":true, \"position\":\"H\"}]}";
Labyrinthe labyrithe = gson.fromJson(bfr, Labyrinthe.class); Labyrinthe labyrithe = gson.fromJson(bfr, Labyrinthe.class);
return labyrithe; return labyrithe;
} }
public void save(Labyrinthe lab) throws IOException{ public void save(Labyrinthe lab) throws IOException{
Gson gson =new Gson(); Gson gson =new Gson();

@ -24,7 +24,7 @@ public class Bourse extends Objet {
return "Bourse"; return "Bourse";
} }
public int Achat(Objet o) { //commande pour v<>rifier si la personne peut acheter un objet et pour faire le d<>compte de la thunasse public int Achat(Objet o) { //verifie que l'on peut acheter l'objet
if (o.getPrix() <= this.valeur) return (this.valeur=this.valeur-o.getPrix()); if (o.getPrix() <= this.valeur) return (this.valeur=this.valeur-o.getPrix());
else { else {
int manque =o.getPrix()-this.valeur; int manque =o.getPrix()-this.valeur;
@ -32,10 +32,4 @@ public class Bourse extends Objet {
return -1; return -1;
} }
} }
/*
public int fusionBourse(Bourse sacPiece) {
this.valeur += sacPiece.valeur;
return this.valeur;
}
*/
} }

@ -33,90 +33,94 @@ public class EtreVivant {
this.pAttaque = pAttaque; this.pAttaque = pAttaque;
this.vivant = true; this.vivant = true;
} }
/** /**
* @return the nom * @return the nom
*/ */
public String getNom() { public String getNom() {
return nom; return nom;
} }
/** /**
* @param nom the nom to set * @return the pVie
*/ */
public void setNom(String nom) { public int getpVie() {
this.nom = nom; return pVie;
}
/**
* @return the pAttaque
*/
public int getpAttaque() {
return pAttaque;
} }
/**
* @return the salle
*/
public Salle getSalle() {
return salle;
}
public int getPvMax() {
return this.pVieMax;
}
/** /**
* @return the pVieMax * @return the pVieMax
*/ */
public int getpVieMax() { public int getpVieMax() {
return pVieMax; return pVieMax;
} }
/** /**
* @param pVieMax the pVieMax to set * @return the vivant
*/ */
public void setpVieMax(int pVieMax) { public boolean isVivant() {
this.pVieMax = pVieMax; return vivant;
} }
/** /**
* @return the pVie * @param nom the nom to set
*/ */
public int getpVie() { public void setNom(String nom) {
return pVie; this.nom = nom;
} }
/** /**
* @param pVie the pVie to set * @param pVieMax the pVieMax to set
*/ */
public void setpVie(int pVie) { public void setpVieMax(int pVieMax) {
this.pVie = pVie; this.pVieMax = pVieMax;
} }
/** /**
* @return the pAttaque * @param pVie the pVie to set
*/ */
public int getpAttaque() { public void setpVie(int pVie) {
return pAttaque; this.pVie = pVie;
} }
/** /**
* @param pAttaque the pAttaque to set * @param pAttaque the pAttaque to set
*/ */
public void setpAttaque(int pAttaque) { public void setpAttaque(int pAttaque) {
this.pAttaque = pAttaque; this.pAttaque = pAttaque;
} }
/**
* @return the salle
*/
public Salle getSalle() {
return salle;
}
/** /**
* @param salle the salle to set * @param salle the salle to set
*/ */
public void setSalle(Salle salle) { public void setSalle(Salle salle) {
this.salle = salle; this.salle = salle;
} }
/**
* @return the vivant
*/
public boolean isVivant() {
return vivant;
}
/** /**
* @param vivant the vivant to set * @param vivant the vivant to set
*/ */
public void setVivant(boolean vivant) { public void setVivant(boolean vivant) {
this.vivant = vivant; this.vivant = vivant;
} }
public int getPvMax() {
return this.pVieMax;
}
} }

@ -17,6 +17,33 @@ public class Personnage extends EtreVivant {
this.bourse=new Bourse(0); this.bourse=new Bourse(0);
} }
/**
* @return the armure
*/
public int getArmure() {
return armure;
}
public Bourse getBourse() {
return this.bourse;
}
public List<Potion> getPotion() {
return this.listepotion;
}
public int getValeurBourse() {
return this.getBourse().getValeur();
}
/**
* @return the arme
*/
public int getArme() {
return arme;
}
public void equiper(Arme arme,Labyrinthe lab) { public void equiper(Arme arme,Labyrinthe lab) {
this.arme=lab.getListeArme().indexOf(arme); this.arme=lab.getListeArme().indexOf(arme);
} }
@ -32,14 +59,6 @@ public class Personnage extends EtreVivant {
this.salle=salle; this.salle=salle;
} }
public void allerMarche(Salle marche){
this.salle=marche;
}
public List<Potion> getPotion() {
return this.listepotion;
}
public void gagnerUnePotion() { public void gagnerUnePotion() {
Potion potion=new Potion(100); Potion potion=new Potion(100);
listepotion.add(potion); listepotion.add(potion);
@ -58,37 +77,15 @@ public class Personnage extends EtreVivant {
} }
} }
public Bourse getBourse() {
return this.bourse;
}
public int getValeurBourse() {
return this.getBourse().getValeur();
}
/**
* @return the arme
*/
public int getArme() {
return arme;
}
public String remplirBourse() { public String remplirBourse() {
Random rd = new Random(); Random rd = new Random();
int piece = rd.nextInt(20); this.bourse.setValeur(this.bourse.getValeur()+rd.nextInt(20));
//this.bourse.fusionBourse(new Bourse(rd.nextInt(20)));
this.bourse.setValeur(this.bourse.getValeur()+piece);
String str="Vous avez gagnez une bourse. Vous comptez vos pieces... Genial !! Vous avez desormais "+this.getValeurBourse()+" pieces d'argent !"; String str="Vous avez gagnez une bourse. Vous comptez vos pieces... Genial !! Vous avez desormais "+this.getValeurBourse()+" pieces d'argent !";
return str; return str;
} }
/**
* @return the armure
*/
public int getArmure() {
return armure;
}
public void soin(int heal) { public void soin(int heal) {
if (pVie+heal > pVieMax)pVie=pVieMax; if (pVie+heal > pVieMax)pVie=pVieMax;
else pVie+=heal; else pVie+=heal;

Loading…
Cancel
Save