Compare commits
11 Commits
master
...
correction
Author | SHA1 | Date |
---|---|---|
Theo_Dubo | e119bf5920 | 6 years ago |
Theo_Dubo | 71004f4902 | 6 years ago |
Theo_Dubo | ba87310916 | 6 years ago |
Theo_Dubo | bc8652d0ff | 6 years ago |
Theo_Dubo | 09798a4b1c | 6 years ago |
Theo_Dubo | ddd83db685 | 6 years ago |
Theo_Dubo | b26c5749dc | 6 years ago |
Theo_Dubo | 0fa29e0c16 | 6 years ago |
Theo_Dubo | 99c1028a49 | 6 years ago |
Theo_Dubo | 9e9f77c544 | 6 years ago |
Theo_Dubo | 12b8b22fd6 | 6 years ago |
@ -1,4 +1,4 @@
|
||||
package modeles;
|
||||
package fonctionnement;
|
||||
|
||||
import java.util.InputMismatchException;
|
||||
import java.util.Scanner;
|
@ -0,0 +1,275 @@
|
||||
package fonctionnement;
|
||||
|
||||
import labyrinthe.*;
|
||||
import modeles.*;
|
||||
import javafx.util.*;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.GenericArrayType;
|
||||
import java.util.Random;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
public class Menu {
|
||||
|
||||
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(20);//le nombre peut changer
|
||||
case 2:
|
||||
Sauvegarde ge = new Sauvegarde();
|
||||
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.getListePersonnage()) {
|
||||
System.out.println(i++ + ") "+per.getNom());
|
||||
}
|
||||
|
||||
Personnage pers;
|
||||
try{
|
||||
pers =lab.getListePersonnage().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 boolean Menudeplacement(Personnage perso, Salle salle,Labyrinthe lab) throws IOException {
|
||||
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");
|
||||
Salle s;
|
||||
Monstre mons;
|
||||
Pair<Integer,Integer>next;
|
||||
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");
|
||||
return true;
|
||||
}
|
||||
while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
|
||||
mons=lab.getListeMonstre().get(s.getListeEnnemie().get(0));
|
||||
csb=menuCombat(mons, perso, lab);
|
||||
if (csb.contentEquals("Votre ennemie trepasse.")) {
|
||||
s.getListeEnnemie().remove(0);
|
||||
}
|
||||
System.out.println(csb);
|
||||
}
|
||||
if (perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
|
||||
perso.seDeplacer(s);
|
||||
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.");
|
||||
perso.getSalle().cle(lab);
|
||||
}
|
||||
}
|
||||
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");
|
||||
return true;
|
||||
}
|
||||
while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
|
||||
mons =lab.getListeMonstre().get(s.getListeEnnemie().get(0));
|
||||
csb=menuCombat(mons, perso, lab);
|
||||
if (csb.contentEquals("Votre ennemie trepasse.")) {
|
||||
s.getListeEnnemie().remove(0);
|
||||
}
|
||||
System.out.println(csb);
|
||||
}
|
||||
if (perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
|
||||
perso.seDeplacer(s);
|
||||
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.");
|
||||
perso.getSalle().cle(lab);
|
||||
}
|
||||
}
|
||||
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");
|
||||
return true;
|
||||
}
|
||||
while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
|
||||
mons =lab.getListeMonstre().get(s.getListeEnnemie().get(0));
|
||||
csb=menuCombat(mons, perso, lab);
|
||||
if (csb.contentEquals("Votre ennemie trepasse.")) {
|
||||
s.getListeEnnemie().remove(0);
|
||||
}
|
||||
System.out.println(csb);
|
||||
}
|
||||
if (perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
|
||||
perso.seDeplacer(s);
|
||||
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.");
|
||||
perso.getSalle().cle(lab);
|
||||
} }
|
||||
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");
|
||||
return true;
|
||||
}
|
||||
while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
|
||||
mons =lab.getListeMonstre().get(s.getListeEnnemie().get(0));
|
||||
csb=menuCombat(mons, perso, lab);
|
||||
if (csb.contentEquals("Votre ennemie trepasse.")) {
|
||||
s.getListeEnnemie().remove(0);
|
||||
}
|
||||
System.out.println(csb);
|
||||
}
|
||||
if (perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
|
||||
|
||||
perso.seDeplacer(s);
|
||||
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.");
|
||||
perso.getSalle().cle(lab);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "X" :
|
||||
try {
|
||||
gene.save(lab);
|
||||
}catch(Exception e) {
|
||||
System.out.println(e);
|
||||
}
|
||||
return false;
|
||||
default :
|
||||
System.out.println("erreur de lecture");
|
||||
}
|
||||
if(perso.isVivant())System.out.println("Vous etes a la salle de coordonnes "+perso.getSalle().getCoordonnes().getKey()+" "+perso.getSalle().getCoordonnes().getValue()+".");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
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(perso.getSalle().creerObjetsAVendre(lab)+"\nVoulez-vous acheter une arme ? (oui/non)");
|
||||
String selection=Clavier.entrerClavierString();
|
||||
if(selection.contentEquals("oui")) {
|
||||
System.out.println("Quel numero pour l'arme ?");
|
||||
int valeur = Clavier.entrerClavierInt();
|
||||
if (perso.getBourse().Achat(lab.getListeArme().get(valeur))>=0) perso.equiper(lab.getListeArme().get(valeur),lab);
|
||||
} else {
|
||||
System.out.println("Pourquoi Pas une armure alors ? (oui/non)");
|
||||
selection=Clavier.entrerClavierString();
|
||||
if(selection.contentEquals("oui")) {
|
||||
System.out.println("Quel numero pour l'armure ?");
|
||||
int valeur = Clavier.entrerClavierInt();
|
||||
if (perso.getBourse().Achat(lab.getListeArmure().get(valeur))>=0) perso.equiper(lab.getListeArmure().get(valeur),lab);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "2":
|
||||
System.out.println("Vous sortez du marche.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void menuJeu() {
|
||||
Labyrinthe lab=menuStartGame();
|
||||
Personnage perso = menuSelection(lab);
|
||||
boolean jeu=true;
|
||||
try {
|
||||
do {
|
||||
jeu=Menudeplacement(perso, perso.getSalle(),lab);
|
||||
if (perso.getSalle().isEstMarche() && perso.isVivant()) {
|
||||
lab.restore();
|
||||
MenuMarche(perso, lab);
|
||||
}
|
||||
}while(perso.isVivant() && !perso.getSalle().estSortie() && jeu);
|
||||
}catch (Exception e) {
|
||||
System.out.println(e);
|
||||
}
|
||||
}
|
||||
|
||||
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.");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,96 @@
|
||||
package fonctionnement;
|
||||
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import labyrinthe.Labyrinthe;
|
||||
import modeles.Personnage;
|
||||
|
||||
public class Sauvegarde {
|
||||
|
||||
public Labyrinthe labyrinthe() {
|
||||
BufferedReader bfr= null;
|
||||
BufferedReader bfrP=null;
|
||||
BufferedReader bfrPe=null;
|
||||
|
||||
try {
|
||||
bfr = new BufferedReader(new FileReader("C:\\Users\\theo\\Documents\\lab.json"));
|
||||
bfrP= new BufferedReader(new FileReader("C:\\Users\\theo\\Documents\\perBor.json"));
|
||||
bfrPe=new BufferedReader(new FileReader("C:\\Users\\theo\\Documents\\perAra.json"));
|
||||
} catch (FileNotFoundException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
Gson gson = new Gson();
|
||||
Labyrinthe labyrithe = gson.fromJson(bfr, Labyrinthe.class);
|
||||
Personnage per1=gson.fromJson(bfrP, Personnage.class);
|
||||
Personnage per=gson.fromJson(bfrPe, Personnage.class);
|
||||
labyrithe.getListePersonnage().add(per);
|
||||
labyrithe.getListePersonnage().add(per1);
|
||||
try {
|
||||
labyrithe.adaptSalle();
|
||||
} catch (Exception e) {
|
||||
System.out.println(e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
return labyrithe;
|
||||
}
|
||||
|
||||
|
||||
public void save(Labyrinthe lab) throws IOException{
|
||||
saveAra(lab.getListePersonnage().remove(0));
|
||||
saveBor(lab.getListePersonnage().remove(0));
|
||||
Gson gson =new Gson();
|
||||
String str = gson.toJson(lab);
|
||||
System.out.println(lab.getListePorte().toString());
|
||||
try {
|
||||
File file = new File("C:\\Users\\theo\\Documents\\lab.json");
|
||||
file.createNewFile();
|
||||
FileWriter writer = new FileWriter(file);
|
||||
writer.write(str);
|
||||
writer.close();
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void saveBor(Personnage pers) throws IOException{
|
||||
Gson gson=new Gson();
|
||||
String str=gson.toJson(pers);
|
||||
System.out.println(str);
|
||||
try {
|
||||
File file = new File("C:\\Users\\theo\\Documents\\perBor.json");
|
||||
file.createNewFile();
|
||||
FileWriter writer = new FileWriter(file);
|
||||
writer.write(str);
|
||||
writer.close();
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
public void saveAra(Personnage pers) throws IOException{
|
||||
Gson gson=new Gson();
|
||||
String str=gson.toJson(pers);
|
||||
System.out.println(str);
|
||||
try {
|
||||
File file = new File("C:\\Users\\theo\\Documents\\perAra.json");
|
||||
file.createNewFile();
|
||||
FileWriter writer = new FileWriter(file);
|
||||
writer.write(str);
|
||||
writer.close();
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package fonctionnement;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class main {
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
|
||||
Menu menu = new Menu();
|
||||
menu.menuJeu();
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1 +0,0 @@
|
||||
{"listePersonnage":[{"listepotion":[],"nom":"Aramis","pVieMax":10,"pVie":10,"pAttaque":1,"vivant":true},{"listepotion":[],"nom":"Boromis","pVieMax":8,"pVie":8,"pAttaque":2,"vivant":true}],"listeArme":[{"pArme":2,"nom":"Epee en bois","prix":5,"usure":10},{"pArme":4,"nom":"Epee en acier","prix":15,"usure":10},{"pArme":4,"nom":"Epee en acier solide","prix":25,"usure":20},{"pArme":7,"nom":"Epee de cristal","prix":30,"usure":5},{"pArme":10,"nom":"Lame Blanche","prix":200,"usure":30}],"listeArmure":[{"pArmure":5,"nom":"armure de cuir","prix":10,"usure":10},{"pArmure":2,"nom":"armure en papier","prix":5,"usure":5},{"pArmure":5,"nom":"armure de fer","prix":30,"usure":10},{"pArmure":8,"nom":"Le kevlar","prix":150,"usure":15}],"listePorte":[{"id":1,"ouvert":true,"salle1":{"coordonnees":{"key":0,"value":0},"sortie":false,"listePorte":[]},"salle2":{"coordonnees":{"key":1,"value":0},"sortie":false,"listePorte":[],"listeEnnemie":[5]}},{"id":1,"ouvert":true,"salle1":{"coordonnees":{"key":0,"value":0},"sortie":false,"listePorte":[]},"salle2":{"coordonnees":{"key":0,"value":1},"sortie":false,"listePorte":[],"listeEnnemie":[3,1]}},{"id":1,"ouvert":true,"salle1":{"coordonnees":{"key":1,"value":1},"sortie":false,"listePorte":[],"listeEnnemie":[]},"salle2":{"coordonnees":{"key":0,"value":1},"sortie":false,"listePorte":[],"listeEnnemie":[3,1]}},{"id":1,"ouvert":true,"salle1":{"coordonnees":{"key":2,"value":0},"sortie":false,"listePorte":[],"listeEnnemie":[4,0]},"salle2":{"coordonnees":{"key":1,"value":0},"sortie":false,"listePorte":[],"listeEnnemie":[5]}},{"id":1,"ouvert":true,"salle1":{"coordonnees":{"key":2,"value":0},"sortie":false,"listePorte":[],"listeEnnemie":[4,0]},"salle2":{"coordonnees":{"key":2,"value":1},"sortie":true,"listePorte":[],"listeEnnemie":[3,3]}},{"id":1,"ouvert":true,"salle1":{"coordonnees":{"key":2,"value":1},"sortie":true,"listePorte":[],"listeEnnemie":[3,3]},"salle2":{"coordonnees":{"key":1,"value":1},"sortie":false,"listePorte":[],"listeEnnemie":[]}}],"listeMonstre":[{"nom":"pantin en bois","pVieMax":5,"pVie":5,"pAttaque":1,"vivant":true},{"nom":"araignee geante agressive","pVieMax":7,"pVie":7,"pAttaque":5,"vivant":true},{"nom":"pantin de fer","pVieMax":40,"pVie":40,"pAttaque":1,"vivant":true},{"nom":"Golem de Jade","pVieMax":40,"pVie":40,"pAttaque":3,"vivant":true},{"nom":"Neltharion le Gardeterre","pVieMax":100,"pVie":100,"pAttaque":10,"vivant":true},{"nom":"Neltharion, le Destructeur","pVieMax":80,"pVie":80,"pAttaque":20,"vivant":true}]}
|
@ -0,0 +1,220 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package labyrinthe;
|
||||
import modeles.*;
|
||||
import java.util.*;
|
||||
|
||||
public class Labyrinthe {
|
||||
protected List<Personnage> listePersonnage=new ArrayList<Personnage>();
|
||||
protected List<Arme> listeArme= new ArrayList<Arme>();
|
||||
protected List<Armure> listeArmure=new ArrayList<Armure>();
|
||||
protected List<Porte> listePorte=new ArrayList<Porte>();
|
||||
protected List<Monstre> listeMonstre=new ArrayList<Monstre>();
|
||||
|
||||
public Labyrinthe(int nb){
|
||||
int nbSalle =nb;
|
||||
Arme arme=new Arme("Epee en bois",25,10,2);
|
||||
listeArme.add(arme);
|
||||
Arme arme1=new Arme("Epee en acier",50,10,4);
|
||||
listeArme.add(arme1);
|
||||
Arme arme2=new Arme("Epee en acier solide",75,20,4);
|
||||
listeArme.add(arme2);
|
||||
Arme arme3=new Arme("Epee de cristal",80,5,7);
|
||||
listeArme.add(arme3);
|
||||
Arme arme4=new Arme("Lame Blanche",300,30,14);
|
||||
listeArme.add(arme4);
|
||||
|
||||
Armure armure1=new Armure("armure de cuir",40,10,5);
|
||||
listeArmure.add(armure1);
|
||||
Armure armure=new Armure("armure en papier",20,5,2);
|
||||
listeArmure.add(armure);
|
||||
Armure armure2=new Armure("armure de fer",70,15,7);
|
||||
listeArmure.add(armure2);
|
||||
Armure armure3=new Armure("Le kevlar",230,20,10);
|
||||
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);
|
||||
this.listeMonstre.add(mons);
|
||||
mons=new Monstre("araignee geante",7, 2);
|
||||
this.listeMonstre.add(mons);
|
||||
mons=new Monstre("Golem de Sable",20, 3);
|
||||
this.listeMonstre.add(mons);
|
||||
mons=new Monstre("Petit dragon",20,5);
|
||||
this.listeMonstre.add(mons);
|
||||
mons=new Monstre("Grand Dragon",40,5);
|
||||
this.listeMonstre.add(mons);
|
||||
mons=new Monstre("Chat sauvage",9, 1);
|
||||
this.listeMonstre.add(mons);
|
||||
mons= new Monstre("araignee geante agressive", 7, 5);
|
||||
this.listeMonstre.add(mons);
|
||||
mons=new Monstre("pantin de fer",20,1);
|
||||
this.listeMonstre.add(mons);
|
||||
mons = new Monstre("Golem de Jade",40, 3);
|
||||
this.listeMonstre.add(mons);
|
||||
mons= new Monstre("Neltharion le Gardeterre",100,10);
|
||||
this.listeMonstre.add(mons);
|
||||
mons = new Monstre("Neltharion, le Destructeur", 80,20);
|
||||
this.listeMonstre.add(mons);
|
||||
|
||||
|
||||
List<Salle> ListSalle=new ArrayList<Salle>();
|
||||
Salle marche= new Salle(0,0, false,true);
|
||||
for (Personnage p : this.listePersonnage)p.setSalle(marche);
|
||||
ListSalle.add(marche);
|
||||
List<Integer>table;
|
||||
Salle salle;
|
||||
Salle deRelais;
|
||||
Porte porte;
|
||||
boolean ok=true;
|
||||
|
||||
Random rd= new Random();
|
||||
|
||||
table= new ArrayList<Integer>();
|
||||
table.add(0);
|
||||
table.add(1);
|
||||
Salle salle1=new Salle(0,1,false,table);
|
||||
ListSalle.add(salle1);
|
||||
table= new ArrayList<Integer>();
|
||||
table.add(0);
|
||||
table.add(1);
|
||||
Porte porte1=new Porte(true,marche,salle1);
|
||||
listePorte.add(porte1);
|
||||
salle=new Salle(0,-1,false,table);
|
||||
ListSalle.add(salle);
|
||||
porte= new Porte(true, marche, salle);
|
||||
listePorte.add(porte);
|
||||
table= new ArrayList<Integer>();
|
||||
table.add(0);
|
||||
table.add(1);
|
||||
Salle salle2=new Salle(1,0,false,table);
|
||||
ListSalle.add(salle2);
|
||||
Porte port2=new Porte(true,marche,salle2);
|
||||
listePorte.add(port2);
|
||||
|
||||
for (int i = 0; i < nbSalle-4;i++) {
|
||||
table= new ArrayList<Integer>();
|
||||
for (int j = 0; j<rd.nextInt(4);j++) {
|
||||
table.add(rd.nextInt(this.listeMonstre.size()-3));
|
||||
}
|
||||
deRelais=ListSalle.get(rd.nextInt(ListSalle.size()));
|
||||
if(rd.nextInt(1)==0) {
|
||||
salle=new Salle( deRelais.getCoordonnes().getKey()+puissance(-1, rd.nextInt(1)),deRelais.getCoordonnes().getValue() ,false,table);
|
||||
} else {
|
||||
salle=new Salle( deRelais.getCoordonnes().getKey(),deRelais.getCoordonnes().getValue()+puissance(-1, rd.nextInt(1)) ,false,table);
|
||||
}
|
||||
if (contents(salle,ListSalle)) {
|
||||
nbSalle++;
|
||||
break;
|
||||
}
|
||||
else {
|
||||
ListSalle.add(salle);
|
||||
porte=new Porte(false, deRelais, salle);
|
||||
listePorte.add(porte);
|
||||
}
|
||||
}
|
||||
while (ok) {
|
||||
table= new ArrayList<Integer>();
|
||||
for (int j = 0; j<2;j++) {
|
||||
table.add(this.listeMonstre.size()-2+j);
|
||||
}
|
||||
deRelais=ListSalle.get(rd.nextInt(ListSalle.size()));
|
||||
if(rd.nextInt(1)==0) {
|
||||
salle=new Salle( deRelais.getCoordonnes().getKey()+puissance(-1, rd.nextInt(1)),deRelais.getCoordonnes().getValue() ,false,table);
|
||||
} else {
|
||||
salle=new Salle( deRelais.getCoordonnes().getKey(),deRelais.getCoordonnes().getValue()+puissance(-1, rd.nextInt(1)) ,false,table);
|
||||
}
|
||||
if (contents(salle,ListSalle)) ok = true;
|
||||
else {
|
||||
porte=new Porte(false, deRelais, salle);
|
||||
listePorte.add(porte);
|
||||
ok= false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
int result = 1;
|
||||
|
||||
for(int i = 0; i < p; i++)
|
||||
{
|
||||
result = result * a;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public void restore() {
|
||||
Random rd =new Random();
|
||||
for (Porte p : listePorte) {
|
||||
|
||||
if (p.getSalle1().estVide() && !p.getSalle1().isEstMarche()) {
|
||||
|
||||
for (int i =0; i<rd.nextInt(4);i++) {
|
||||
p.getSalle1().getListeEnnemie().add(rd.nextInt(listeMonstre.size()-3));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (p.getSalle1().estVide() && !p.getSalle1().isEstMarche()) {
|
||||
|
||||
for (int i =0; i<rd.nextInt(4);i++) {
|
||||
|
||||
p.getSalle1().getListeEnnemie().add(rd.nextInt(listeMonstre.size()-3));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void adaptSalle() throws Exception {
|
||||
List<Salle> listeSalle =new ArrayList<Salle>();
|
||||
for (Porte po : listePorte) {
|
||||
if (!contents(po.getSalle1(),listeSalle)) listeSalle.add(po.getSalle1());
|
||||
if (!contents(po.getSalle2(),listeSalle)) listeSalle.add(po.getSalle2());
|
||||
}
|
||||
for (Personnage p : listePersonnage) {
|
||||
int i =0;
|
||||
while (!p.getSalle().equals(listeSalle.get(i++)) && i<listeSalle.size());
|
||||
if (i-1>=listeSalle.size())throw new Exception("La salle du personnage n'existe pas ");
|
||||
else {
|
||||
System.out.println(this.getListePorte().toString());
|
||||
p.seDeplacer(listeSalle.get(i-1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean contents(Salle s, List<Salle> ls) {
|
||||
for (Salle p : ls) {
|
||||
if(s.equals(p)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package labyrinthe;
|
||||
/*
|
||||
* @author flavien
|
||||
*/
|
||||
|
||||
public class Porte {
|
||||
private static int id =0;
|
||||
private boolean ouvert;
|
||||
private Salle salle1;
|
||||
private Salle salle2;
|
||||
|
||||
|
||||
public Porte(boolean ouvert, Salle salle,Salle salle2) {
|
||||
super();
|
||||
this.ouvert = ouvert;
|
||||
this.salle1 = salle;
|
||||
this.salle1.getListePorte().add(id);
|
||||
this.salle2 = salle2;
|
||||
this.salle2.getListePorte().add(id);
|
||||
id++;
|
||||
}
|
||||
|
||||
|
||||
public Salle getSalle1() {
|
||||
return salle1;
|
||||
}
|
||||
|
||||
|
||||
public Salle getSalle2() {
|
||||
return salle2;
|
||||
}
|
||||
|
||||
|
||||
public boolean estOuverte() {
|
||||
return ouvert;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public void ouverture() {
|
||||
this.ouvert= true;
|
||||
}
|
||||
|
||||
public Salle prochainSaut(Salle s) {
|
||||
if (s.equals(this.salle1)) {
|
||||
return salle2;
|
||||
} else return salle1;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Porte [ouvert=" + ouvert + ", salle1=" + salle1 + ", salle2=" + salle2 + "]";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package labyrinthe;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javafx.util.Pair;
|
||||
import modeles.Arme;
|
||||
import modeles.Armure;
|
||||
|
||||
|
||||
public class Salle {
|
||||
private Pair<Integer,Integer> coordonnees;
|
||||
private boolean sortie;
|
||||
private List<Integer> listePorte= new ArrayList<Integer>();
|
||||
private List<Integer> listeEnnemie= new ArrayList<Integer>(); //indice de monstre
|
||||
private boolean estMarche;
|
||||
|
||||
public Salle(int x, int y, boolean out,boolean marche) {
|
||||
this.listeEnnemie=new ArrayList<Integer>();
|
||||
this.coordonnees=new Pair<Integer,Integer>(x,y);
|
||||
this.sortie=out;
|
||||
this.estMarche=marche;
|
||||
}
|
||||
|
||||
public Salle(int positionX, int positionY, boolean sortie, List<Integer> listeEnnemie) {
|
||||
this.coordonnees=new Pair<Integer,Integer>(positionX,positionY);
|
||||
this.sortie = sortie;
|
||||
this.listeEnnemie = listeEnnemie;
|
||||
this.estMarche=false;
|
||||
}
|
||||
|
||||
public boolean isEstMarche() {
|
||||
return estMarche;
|
||||
}
|
||||
|
||||
public Pair<Integer,Integer> getCoordonnes() {
|
||||
return this.coordonnees;
|
||||
}
|
||||
|
||||
public boolean estSortie() {
|
||||
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) {
|
||||
for (int i : listePorte ) lab.listePorte.get(i).ouverture();
|
||||
}
|
||||
|
||||
public boolean estVide() {
|
||||
return (listeEnnemie.size()==0);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public String creerObjetsAVendre(Labyrinthe lab) {
|
||||
if (!estMarche)return "";
|
||||
String listeSarme="";
|
||||
String listeSarmure="";
|
||||
String listeobjet="";
|
||||
int i = 0;
|
||||
int j =0;
|
||||
|
||||
for (Arme arme : lab.listeArme) listeSarme +=i++ +") "+ arme.getNom() + " au prix de : " + arme.getPrix()+" (dégat bonus : "+arme.getpArme()+" /durabilité : "+arme.getUsure()+" )\n";
|
||||
|
||||
for (Armure armure : lab.listeArmure) listeSarmure +=j++ +") "+ armure.getNom()+ " au prix de : " + armure.getPrix()+" (protection : "+armure.getpArmure()+" /durabilité : "+armure.getUsure()+") \n";
|
||||
|
||||
listeobjet = "Armes :\n" + listeSarme + "\nArmures :\n" + listeSarmure;
|
||||
|
||||
return listeobjet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Salle [coordonnees=" + coordonnees + ", sortie=" + sortie + ", listePorte=" + listePorte
|
||||
+ ", listeEnnemie=" + listeEnnemie + ", estMarche=" + estMarche + "]";
|
||||
}
|
||||
}
|
@ -1,51 +0,0 @@
|
||||
package modeles;
|
||||
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
public class Generateur {
|
||||
|
||||
public Labyrinthe labyrinthe() {
|
||||
BufferedReader bfr= null;
|
||||
try {
|
||||
bfr = new BufferedReader(new FileReader("C:\\Users\\Nicolas\\eclipse-workspace\\Projet_Java\\JAVA\\PROJET-PMT_STRI1A\\src\\json\\lab.json"));
|
||||
} catch (FileNotFoundException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
//FileReader file = new FileReader(json);
|
||||
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);
|
||||
return labyrithe;
|
||||
}
|
||||
public void save(Labyrinthe lab) throws IOException{
|
||||
Gson gson =new Gson();
|
||||
|
||||
String str = gson.toJson(lab);
|
||||
System.out.println(str);
|
||||
try {
|
||||
File file = new File("C:\\Users\\Nicolas\\eclipse-workspace\\Projet_Java\\JAVA\\PROJET-PMT_STRI1A\\src\\json\\lab.json");
|
||||
|
||||
file.createNewFile();
|
||||
FileWriter writer = new FileWriter(file);
|
||||
writer.write(str);
|
||||
writer.close();
|
||||
|
||||
//file.print(s);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,113 +0,0 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package modeles;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class Labyrinthe {
|
||||
protected List<Personnage> listePersonnage=new ArrayList<Personnage>();
|
||||
protected List<Arme> listeArme= new ArrayList<Arme>();
|
||||
protected List<Armure> listeArmure=new ArrayList<Armure>();
|
||||
protected List<Porte> listePorte=new ArrayList<Porte>();
|
||||
protected List<Monstre> listeMonstre=new ArrayList<Monstre>();
|
||||
|
||||
public Labyrinthe() {
|
||||
/*switch (nInstance)
|
||||
case 1 :
|
||||
return Labyrinthe1();
|
||||
break;
|
||||
}*/
|
||||
labyrinthe1();
|
||||
}
|
||||
public void labyrinthe1() {
|
||||
Arme arme=new Arme("Epee en bois",5,10,2);
|
||||
listeArme.add(arme);
|
||||
Arme arme1=new Arme("Epee en acier",15,10,4);
|
||||
listeArme.add(arme1);
|
||||
Arme arme2=new Arme("Epee en acier solide",25,20,4);
|
||||
listeArme.add(arme2);
|
||||
Arme arme3=new Arme("Epee de cristal",30,5,7);
|
||||
listeArme.add(arme3);
|
||||
Arme arme4=new Arme("Lame Blanche",200,30,10);
|
||||
listeArme.add(arme4);
|
||||
|
||||
Armure armure1=new Armure("armure de cuir",10,10,5);
|
||||
listeArmure.add(armure1);
|
||||
Armure armure=new Armure("armure en papier",5,5,2);
|
||||
listeArmure.add(armure);
|
||||
Armure armure2=new Armure("armure de fer",30,10,5);
|
||||
listeArmure.add(armure2);
|
||||
Armure armure3=new Armure("Le kevlar",150,15,8);
|
||||
listeArmure.add(armure3);
|
||||
|
||||
Personnage perso=new Personnage("Aramis",10,1);
|
||||
listePersonnage.add(perso);
|
||||
Personnage perso2=new Personnage("Boromis",100,50);
|
||||
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(null);
|
||||
|
||||
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()-2));
|
||||
}
|
||||
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()-2));
|
||||
}
|
||||
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()-2));
|
||||
}
|
||||
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()-2));
|
||||
}
|
||||
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()-1+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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package modeles;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author flavien
|
||||
*
|
||||
*/
|
||||
public class Marche extends Salle {
|
||||
public Marche(List<Integer> listeEnnemie) {
|
||||
super(0,0, false, listeEnnemie);
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public String creerObjetsAVendre(Labyrinthe lab) {
|
||||
String listeSarme="";
|
||||
String listeSarmure="";
|
||||
String listeobjet="";
|
||||
int i = 0;
|
||||
int j =0;
|
||||
|
||||
for (Arme arme : lab.listeArme) listeSarme +=i++ +") "+ arme.getNom() + " au prix de : " + arme.getPrix()+"\n";
|
||||
|
||||
for (Armure armure : lab.listeArmure) listeSarmure +=j++ +") "+ armure.getNom()+ " au prix de : " + armure.getPrix()+"\n";
|
||||
|
||||
|
||||
listeobjet = "Armes :\n" + listeSarme + "\nArmures :\n" + listeSarmure;
|
||||
|
||||
return listeobjet;
|
||||
}
|
||||
|
||||
}
|
@ -1,141 +0,0 @@
|
||||
package modeles;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Random;
|
||||
public class Menu {
|
||||
|
||||
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 :");
|
||||
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);
|
||||
System.out.println("Vous avez infligé "+degat+" à votre adversaire.");
|
||||
if (!mons.isVivant()) {
|
||||
perso.salle.cle(lab);
|
||||
System.out.println(perso.remplirBourse());
|
||||
return "Votre ennemie trépasse et vous obtenez la clé des portes de la salle.";
|
||||
} else {
|
||||
System.out.println("Au tour de votre adversaire. Il attaque préparez vous ! ");
|
||||
System.out.println("il vous inflige "+ mons.attaquer(perso)+".");
|
||||
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�.";
|
||||
}
|
||||
else System.out.println("votre ennemie n'est pas encore à bout achever 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.");
|
||||
} else {
|
||||
System.out.println("Il ne vous reste plus de potion. Désolé.");
|
||||
}
|
||||
break;
|
||||
|
||||
case 3 :
|
||||
System.out.println("Vous tentez de fuir.");
|
||||
Random rd = new Random();
|
||||
if (rd.nextInt(100)<50) {
|
||||
return "Vous avez fuit.";
|
||||
} else {
|
||||
System.out.println("Ce fut un échec !");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
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");
|
||||
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 deplacement(Personnage perso, Salle salle) {
|
||||
System.out.println("Choisissez une direction:\n Z) Haut\n S) Bas\n D) Droite\n Q) Gauche");
|
||||
switch(Clavier.entrerClavierString()) {
|
||||
case "Z":
|
||||
System.out.println("Vous allez vers le haut");
|
||||
perso.seDeplacer(salle);
|
||||
break;
|
||||
case "S":
|
||||
System.out.println("Vous allez vers le bas");
|
||||
perso.seDeplacer(salle);
|
||||
break;
|
||||
case "D":
|
||||
System.out.println("Vous allez vers le droite");
|
||||
perso.seDeplacer(salle);
|
||||
break;
|
||||
case "Q":
|
||||
System.out.println("Vous allez vers le gauche");
|
||||
perso.seDeplacer(salle);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public void Menu_Marche(Marche 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();
|
||||
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));
|
||||
} 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));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case "2":
|
||||
System.out.println("Vous sortez du marche.");
|
||||
return ;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,53 +0,0 @@
|
||||
package modeles;
|
||||
/*
|
||||
* @author flavien
|
||||
*/
|
||||
|
||||
public class Porte {
|
||||
private static int id =0;
|
||||
private boolean ouvert;
|
||||
private Salle salle1;
|
||||
private Salle salle2;
|
||||
|
||||
|
||||
public Porte(boolean ouvert, Salle salle,Salle salle2) {
|
||||
super();
|
||||
this.ouvert = ouvert;
|
||||
this.salle1 = salle;
|
||||
this.salle1.getListePorte().add(this.id);
|
||||
this.salle2 = salle2;
|
||||
this.salle2.getListePorte().add(this.id);
|
||||
this.id++;
|
||||
}
|
||||
|
||||
|
||||
public Salle getSalle1() {
|
||||
return salle1;
|
||||
}
|
||||
|
||||
|
||||
public Salle getSalle2() {
|
||||
return salle2;
|
||||
}
|
||||
|
||||
|
||||
public boolean estOuverte() {
|
||||
return ouvert;
|
||||
}
|
||||
|
||||
public void ouverture() {
|
||||
this.ouvert= true;
|
||||
}
|
||||
|
||||
public Salle prochainSaut(Salle s) {
|
||||
if (s==this.salle1) {
|
||||
return salle2;
|
||||
} else return salle1;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
package modeles;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
//import javafx.util.Pair;
|
||||
import org.javatuples.*;
|
||||
|
||||
public class Salle {
|
||||
private Pair<Integer,Integer> coordonnees;
|
||||
private boolean sortie;
|
||||
private List<Integer> listePorte= new ArrayList<Integer>();
|
||||
private List<Integer> listeEnnemie= new ArrayList<Integer>(); //indice de monstre
|
||||
|
||||
public Salle(int x, int y, boolean out) {
|
||||
this.coordonnees=new Pair<Integer,Integer>(x,y);
|
||||
this.sortie=out;
|
||||
|
||||
}
|
||||
|
||||
public List<Integer> getListeEnnemie() {
|
||||
return listeEnnemie;
|
||||
}
|
||||
|
||||
public Salle(int positionX, int positionY, boolean sortie, List<Integer> listeEnnemie) {
|
||||
this.coordonnees=new Pair<Integer,Integer>(positionX,positionY);
|
||||
this.sortie = sortie;
|
||||
this.listeEnnemie = listeEnnemie;
|
||||
}
|
||||
|
||||
public String getType(){
|
||||
return "salle";
|
||||
}
|
||||
|
||||
public Pair<Integer,Integer> getCoordonnes() {
|
||||
return this.coordonnees;
|
||||
}
|
||||
|
||||
public boolean estSortie() {
|
||||
return sortie;
|
||||
}
|
||||
|
||||
public void cle(Labyrinthe lab) {
|
||||
//if (listeEnnemie.isEmpty()=null) {
|
||||
for (int i : listePorte ) lab.listePorte.get(i).ouverture();
|
||||
//}
|
||||
}
|
||||
|
||||
public boolean estVide() {
|
||||
return listeEnnemie.isEmpty();
|
||||
}
|
||||
|
||||
public List<Integer> getListePorte() {
|
||||
return this.listePorte;
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
package modeles;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue