Compare commits
6 Commits
correction
...
master
Author | SHA1 | Date |
---|---|---|
NicolasFau | c5ba647f68 | 6 years ago |
NicolasFau | 92c3b7d56a | 6 years ago |
NicolasFau | b0f9825d94 | 6 years ago |
NicolasFau | 21744392ca | 6 years ago |
NicolasFau | eea9162ef4 | 6 years ago |
NicolasFau | e9b3a5aea6 | 6 years ago |
@ -1,20 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry exported="true" kind="lib" path="/home/nicolas/Bureau/jdbc-support-1.0.23-sources.jar">
|
||||
<classpathentry kind="lib" path="/home/nicolas/eclipse-workspace/Projet_Java/JAVA/PROJET-PMT_STRI1A/src/jdbc.jar">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry exported="true" kind="lib" path="/home/nicolas/Téléchargements/gson-2.8.5.jar">
|
||||
<classpathentry kind="lib" path="/home/nicolas/eclipse-workspace/Projet_Java/JAVA/PROJET-PMT_STRI1A/src/gson-2.6.2.jar">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/home/nicolas/eclipse-workspace/Projet_Java/JAVA/PROJET-PMT_STRI1A/src/javatuples-1.2.jar"/>
|
||||
<classpathentry kind="lib" path="/home/nicolas/Téléchargements/swt-linux-gtk-x64.jar/swt-linux-gtk-x64.jar"/>
|
||||
<classpathentry kind="lib" path="swing2swt.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
@ -1,12 +1,12 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=11
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.release=enabled
|
||||
org.eclipse.jdt.core.compiler.source=11
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 939 KiB |
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="src" path=""/>
|
||||
<classpathentry kind="output" path=""/>
|
||||
</classpath>
|
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>src</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
@ -1,275 +0,0 @@
|
||||
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.");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -1,96 +0,0 @@
|
||||
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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
package fonctionnement;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class main {
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
|
||||
Menu menu = new Menu();
|
||||
menu.menuJeu();
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package gui;
|
||||
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.GridBagLayout;
|
||||
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
/**
|
||||
* @author nicolas
|
||||
*
|
||||
*/
|
||||
public class Background extends JPanel{
|
||||
private ImageIcon image;
|
||||
public Background(String path) {
|
||||
super();
|
||||
//this.setLayout(new FlowLayout());
|
||||
this.image=new ImageIcon(path);
|
||||
}
|
||||
public void setBackground(ImageIcon back) {
|
||||
this.image=back;
|
||||
}
|
||||
public void paintComponent(Graphics gr) {
|
||||
super.paintComponent(gr);
|
||||
gr.drawImage(image.getImage(),0,0,this);
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package gui;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.FlowLayout;
|
||||
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.SwingConstants;
|
||||
|
||||
/**
|
||||
* @author nicolas
|
||||
*
|
||||
*/
|
||||
public class Boutton extends JButton {
|
||||
public Boutton(String txt) {
|
||||
super(txt);
|
||||
//this.setLayout(new FlowLayout());
|
||||
setForeground(Color.WHITE);
|
||||
setOpaque(true);
|
||||
setContentAreaFilled(false);
|
||||
setBorderPainted(true);
|
||||
setFocusPainted(false);
|
||||
setHorizontalAlignment(SwingConstants.CENTER);
|
||||
setVerticalAlignment(SwingConstants.CENTER);
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package gui;
|
||||
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.KeyListener;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
|
||||
import modeles.Labyrinthe;
|
||||
import modeles.Menu;
|
||||
import modeles.Salle;
|
||||
|
||||
/**
|
||||
* @author nicolas
|
||||
*
|
||||
*/
|
||||
public class JeuSalle extends JFrame implements KeyListener,ActionListener{
|
||||
public int nb;
|
||||
public Menu menu;
|
||||
public Labyrinthe lab = null;
|
||||
public JeuSalle() {
|
||||
setTitle("Labyrinthe");
|
||||
setSize(1200,600);
|
||||
setLocationRelativeTo(null);
|
||||
setResizable(false);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
|
||||
this.setVisible(true);
|
||||
|
||||
|
||||
}
|
||||
/*Méthode permettant d'écrire du texte dans la fenetre de jeu*/
|
||||
public JPanel ecrire(String str) {
|
||||
JPanel panel = new JPanel();
|
||||
panel.setLayout(new FlowLayout());
|
||||
JLabel label = new JLabel(str);
|
||||
panel.add(label);
|
||||
this.setFocusable(true);
|
||||
this.setContentPane(panel);
|
||||
this.addKeyListener(this);
|
||||
this.requestFocus();
|
||||
this.setVisible(true);
|
||||
return panel;
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see java.awt.event.KeyListener#keyPressed(java.awt.event.KeyEvent)
|
||||
*/
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent)
|
||||
*/
|
||||
@Override
|
||||
public void keyReleased(KeyEvent e) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see java.awt.event.KeyListener#keyTyped(java.awt.event.KeyEvent)
|
||||
Entrer du clavier
|
||||
*/
|
||||
@Override
|
||||
public void keyTyped(KeyEvent e) {
|
||||
nb = e.getKeyChar();
|
||||
System.out.println(nb);
|
||||
|
||||
|
||||
}
|
||||
/* (non-Javadoc)
|
||||
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
|
||||
*/
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
|
||||
|
||||
}
|
||||
/*Méthode qui récupère les entrés de type int du clavier*/
|
||||
public int toucheint() {
|
||||
System.out.println("sortie"+nb);
|
||||
return nb;
|
||||
}
|
||||
/*Méthode que permet de cacher un texte affiché dans la fenetre*/
|
||||
public void cacher(JPanel panel) {
|
||||
panel.setVisible(false);
|
||||
}
|
||||
/**
|
||||
* @return the lab
|
||||
*/
|
||||
public Labyrinthe getLab() {
|
||||
return lab;
|
||||
}
|
||||
/**
|
||||
* @param lab the lab to set
|
||||
*/
|
||||
public void setLab(Labyrinthe lab) {
|
||||
this.lab = lab;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1 @@
|
||||
{"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}]}
|
@ -1,220 +0,0 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
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;
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
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 + "]";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -1,95 +0,0 @@
|
||||
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,4 +1,4 @@
|
||||
package fonctionnement;
|
||||
package modeles;
|
||||
|
||||
import java.util.InputMismatchException;
|
||||
import java.util.Scanner;
|
@ -0,0 +1,51 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
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>();
|
||||
public 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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
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="<html>";
|
||||
int i = 0;
|
||||
int j =0;
|
||||
|
||||
|
||||
for (Arme arme : lab.listeArme) listeSarme += "<br>" + i++ +") "+ arme.getNom() + " au prix de : " + arme.getPrix()+"</br>";
|
||||
|
||||
for (Armure armure : lab.listeArmure) listeSarmure += "<br>"+ j++ +") "+ armure.getNom()+ " au prix de : " + armure.getPrix()+"</br>";
|
||||
|
||||
|
||||
listeobjet ="<html>" + "Armes :\n" + listeSarme +"<br></br>"+ "\nArmures :\n" + listeSarmure;
|
||||
listeobjet=listeobjet+"</html>";
|
||||
return listeobjet;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
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;
|
||||
}
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
}
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
Loading…
Reference in New Issue