Equilibrage, génération automatique de salles, et restorationdes monstres
This commit is contained in:
parent
ddd83db685
commit
09798a4b1c
@ -21,24 +21,24 @@ public class Labyrinthe {
|
||||
labyrinthe1();
|
||||
}
|
||||
public void labyrinthe1() {
|
||||
Arme arme=new Arme("Epee en bois",5,10,2);
|
||||
Arme arme=new Arme("Epee en bois",25,10,2);
|
||||
listeArme.add(arme);
|
||||
Arme arme1=new Arme("Epee en acier",15,10,4);
|
||||
Arme arme1=new Arme("Epee en acier",100,10,4);
|
||||
listeArme.add(arme1);
|
||||
Arme arme2=new Arme("Epee en acier solide",25,20,4);
|
||||
Arme arme2=new Arme("Epee en acier solide",200,20,4);
|
||||
listeArme.add(arme2);
|
||||
Arme arme3=new Arme("Epee de cristal",30,5,7);
|
||||
Arme arme3=new Arme("Epee de cristal",150,5,7);
|
||||
listeArme.add(arme3);
|
||||
Arme arme4=new Arme("Lame Blanche",200,30,10);
|
||||
Arme arme4=new Arme("Lame Blanche",500,30,10);
|
||||
listeArme.add(arme4);
|
||||
|
||||
Armure armure1=new Armure("armure de cuir",10,10,5);
|
||||
Armure armure1=new Armure("armure de cuir",70,10,5);
|
||||
listeArmure.add(armure1);
|
||||
Armure armure=new Armure("armure en papier",5,5,2);
|
||||
Armure armure=new Armure("armure en papier",30,5,2);
|
||||
listeArmure.add(armure);
|
||||
Armure armure2=new Armure("armure de fer",30,10,5);
|
||||
Armure armure2=new Armure("armure de fer",100,10,5);
|
||||
listeArmure.add(armure2);
|
||||
Armure armure3=new Armure("Le kevlar",150,15,8);
|
||||
Armure armure3=new Armure("Le kevlar",300,15,8);
|
||||
listeArmure.add(armure3);
|
||||
|
||||
Personnage perso=new Personnage("Aramis",10,1);
|
||||
@ -107,7 +107,146 @@ public class Labyrinthe {
|
||||
Porte po6= new Porte(true,salle5,salle3);
|
||||
listePorte.add(po6);
|
||||
|
||||
}
|
||||
public void test(int nb){
|
||||
int nbSalle =nb;
|
||||
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",8,2);
|
||||
listePersonnage.add(perso2);
|
||||
|
||||
Monstre mons = new Monstre("pantin en bois",5, 1);
|
||||
this.listeMonstre.add(mons);
|
||||
mons=new Monstre("araignee geante agressive",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);
|
||||
|
||||
Marche marche = new Marche();
|
||||
List<Salle> ListSalle=new ArrayList<Salle>();
|
||||
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=new Salle(0,1,false,table);
|
||||
ListSalle.add(salle);
|
||||
porte=new Porte(true,marche,salle);
|
||||
listePorte.add(porte);
|
||||
salle=new Salle(0,-1,false,table);
|
||||
ListSalle.add(salle);
|
||||
porte= new Porte(true, marche, salle);
|
||||
listePorte.add(porte);
|
||||
salle=new Salle(1,0,false,table);
|
||||
ListSalle.add(salle);
|
||||
listePorte.add(porte);
|
||||
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 (ListSalle.contains(salle)) {
|
||||
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 (ListSalle.contains(salle)) ok = true;
|
||||
else {
|
||||
porte=new Porte(false, deRelais, salle);
|
||||
listePorte.add(porte);
|
||||
ok= false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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().getType().contentEquals("Marche")) {
|
||||
for (int i =0; i<rd.nextInt(4);i++) {
|
||||
p.getSalle1().getListeEnnemie().add(rd.nextInt(listeMonstre.size()-3));
|
||||
}
|
||||
}
|
||||
if (p.getSalle1().estVide() && !p.getSalle1().getType().contentEquals("Marche")) {
|
||||
for (int i =0; i<rd.nextInt(4);i++) {
|
||||
p.getSalle1().getListeEnnemie().add(rd.nextInt(listeMonstre.size()-3));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ public class Menu {
|
||||
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);
|
||||
@ -130,7 +131,7 @@ public class Menu {
|
||||
if((s=salle.findNextSalle(next, lab))==null){
|
||||
System.out.println("Je ne connais pas cette salle");
|
||||
Menudeplacement(perso, salle, lab);
|
||||
} // problème pour cette boucle
|
||||
}
|
||||
while (!s.estVide() && perso.isVivant() && !csb.contentEquals("Vous avez fuit.")) {
|
||||
mons=lab.listeMonstre.get(s.getListeEnnemie().get(0));
|
||||
csb=menuCombat(mons, perso, lab);
|
||||
|
@ -18,7 +18,9 @@ public class Salle {
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user