Compare commits
11 Commits
master
...
correction
Author | SHA1 | Date | |
---|---|---|---|
e119bf5920 | |||
71004f4902 | |||
ba87310916 | |||
bc8652d0ff | |||
09798a4b1c | |||
ddd83db685 | |||
b26c5749dc | |||
0fa29e0c16 | |||
99c1028a49 | |||
9e9f77c544 | |||
12b8b22fd6 |
@ -1,23 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="lib" path="/home/nicolas/eclipse-workspace/Projet_Java/JAVA/PROJET-PMT_STRI1A/src/jdbc.jar">
|
||||
<classpathentry exported="true" kind="lib" path="/home/nicolas/Bureau/jdbc-support-1.0.23-sources.jar">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/home/nicolas/eclipse-workspace/Projet_Java/JAVA/PROJET-PMT_STRI1A/src/gson-2.6.2.jar">
|
||||
<classpathentry exported="true" kind="lib" path="/home/nicolas/Téléchargements/gson-2.8.5.jar">
|
||||
<attributes>
|
||||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
|
||||
<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=1.8
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=11
|
||||
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=1.8
|
||||
org.eclipse.jdt.core.compiler.source=11
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 939 KiB |
@ -1,6 +0,0 @@
|
||||
<?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>
|
@ -1,17 +0,0 @@
|
||||
<?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,4 +1,4 @@
|
||||
package modeles;
|
||||
package fonctionnement;
|
||||
|
||||
import java.util.InputMismatchException;
|
||||
import java.util.Scanner;
|
275
JAVA/PROJET-PMT_STRI1A/src/fonctionnement/Menu.java
Normal file
275
JAVA/PROJET-PMT_STRI1A/src/fonctionnement/Menu.java
Normal file
@ -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.");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
96
JAVA/PROJET-PMT_STRI1A/src/fonctionnement/Sauvegarde.java
Normal file
96
JAVA/PROJET-PMT_STRI1A/src/fonctionnement/Sauvegarde.java
Normal file
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
14
JAVA/PROJET-PMT_STRI1A/src/fonctionnement/main.java
Normal file
14
JAVA/PROJET-PMT_STRI1A/src/fonctionnement/main.java
Normal file
@ -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,33 +0,0 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
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);
|
||||
|
||||
}
|
||||
}
|
@ -1,114 +0,0 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
@ -4,30 +4,12 @@
|
||||
package gui;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Color;
|
||||
|
||||
import gui.Boutton;
|
||||
import modeles.Labyrinthe;
|
||||
import modeles.Marche;
|
||||
import modeles.Menu;
|
||||
import modeles.Objet;
|
||||
import modeles.Personnage;
|
||||
import gui.Background;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.FlowLayout;
|
||||
import java.awt.GraphicsConfiguration;
|
||||
import java.awt.GridBagConstraints;
|
||||
import java.awt.GridBagLayout;
|
||||
import java.awt.HeadlessException;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.attribute.AclEntry.Builder;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
@ -39,97 +21,40 @@ import org.eclipse.swt.SWT;
|
||||
* @author nicolas
|
||||
*
|
||||
*/
|
||||
public class jeu extends JFrame implements ActionListener {
|
||||
JButton continuer =new JButton("Continuer");
|
||||
JButton nouvelle = new JButton("Nouvelle Partie");
|
||||
public class jeu extends JFrame {
|
||||
|
||||
|
||||
public JPanel panel;
|
||||
|
||||
public Menu menu;
|
||||
|
||||
public jeu() throws IOException {
|
||||
public jeu() {
|
||||
super();
|
||||
build();
|
||||
this.menu=new Menu();
|
||||
}
|
||||
|
||||
public void build() throws IOException{
|
||||
public void build() {
|
||||
setTitle("Jeu");
|
||||
setSize(593,283);
|
||||
setSize(800,600);
|
||||
setLocationRelativeTo(null);
|
||||
setResizable(false);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
JPanel center = new JPanel();
|
||||
Dimension taille = new Dimension(200,200);
|
||||
center.setPreferredSize(taille);
|
||||
center.add(new JButton("Jouer"));
|
||||
this.setLayout(new BorderLayout());
|
||||
this.getContentPane().add(buildContentPane(), BorderLayout.NORTH);
|
||||
this.getContentPane().add(center, BorderLayout.CENTER);
|
||||
|
||||
//Création du JLabel pour l'image
|
||||
JLabel container = new JLabel(new ImageIcon(this.image()));
|
||||
}
|
||||
public JPanel buildContentPane() {
|
||||
JPanel panel =new JPanel();
|
||||
Dimension preferredSize = new Dimension(200,200);
|
||||
panel.setLayout(new FlowLayout());
|
||||
JLabel label = new JLabel("Jeu Dragon Donjon");
|
||||
panel.add(label);
|
||||
return panel;
|
||||
|
||||
//Création du layout des boutons
|
||||
container.setLayout(new GridBagLayout());
|
||||
}
|
||||
|
||||
|
||||
nouvelle.addActionListener(this);
|
||||
continuer.addActionListener(this);
|
||||
GridBagConstraints c = new GridBagConstraints();
|
||||
c.gridx = 0;
|
||||
c.gridy = 0;
|
||||
container.add(nouvelle);
|
||||
|
||||
c.gridx = 1;
|
||||
c.gridy=0;
|
||||
container.add(continuer);
|
||||
|
||||
this.setContentPane(container);
|
||||
this.setVisible(true);
|
||||
|
||||
}
|
||||
|
||||
public BufferedImage image() throws IOException {
|
||||
BufferedImage image = ImageIO.read(new File("/home/nicolas/eclipse-workspace/Projet_Java/JAVA/PROJET-PMT_STRI1A/test.jpg"));
|
||||
return image;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
|
||||
Récupération des évènements des boutons Nouvelle Partie et Contnuer
|
||||
*/
|
||||
@Override
|
||||
|
||||
public void actionPerformed(ActionEvent arg0) {
|
||||
Object source=arg0.getSource();
|
||||
choix(source);
|
||||
|
||||
|
||||
}
|
||||
/*Méthode de traitement des actions sur les boutons*/
|
||||
public void choix(Object source) {
|
||||
|
||||
if(source==nouvelle) {
|
||||
System.out.println("1");
|
||||
|
||||
//menu =new Menu();
|
||||
//Création du Labyrinthe
|
||||
Labyrinthe lab =new Labyrinthe();
|
||||
|
||||
//
|
||||
this.menu.getJs().setLab(lab);
|
||||
//Appel de la méthode menuSelection()
|
||||
this.menu.menuSelection(this.menu.getJs().getLab());
|
||||
}
|
||||
if(source==continuer) {
|
||||
System.out.println("2");
|
||||
//menu = new Menu();
|
||||
//recupMenu(menu);
|
||||
//lab = menu.continuer();
|
||||
//return lab;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public Menu getMenu() {
|
||||
return menu;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -4,13 +4,9 @@
|
||||
package gui;
|
||||
|
||||
import java.awt.Dialog;
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.swing.SwingUtilities;
|
||||
|
||||
import modeles.Labyrinthe;
|
||||
import modeles.Menu;
|
||||
|
||||
/**
|
||||
* @author nicolas
|
||||
*
|
||||
@ -20,29 +16,12 @@ public class main {
|
||||
/**
|
||||
* @param args
|
||||
*/
|
||||
public jeu fenetre;
|
||||
public static void main(String[] args) {
|
||||
// TODO Auto-generated method stub
|
||||
SwingUtilities.invokeLater(new Runnable(){
|
||||
public void run(){
|
||||
//On crée une nouvelle instance de notre JDialog
|
||||
jeu fenetre = null;
|
||||
|
||||
try {
|
||||
|
||||
fenetre = new jeu();
|
||||
//Menu menu =fenetre.glob;
|
||||
/*if(fenetre.menu.getJs().getLab()!=null) {
|
||||
System.out.println("passer");
|
||||
fenetre.menu.menuSelection(fenetre.menu.getJs().getLab());
|
||||
//Menu menu =fenetre.creersalle();
|
||||
}*/
|
||||
|
||||
//fenetre.salle.ecrire(fenetre.menu.textePerso(fenetre.lab));
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
jeu fenetre = new jeu();
|
||||
fenetre.setVisible(true);//On la rend visible
|
||||
}
|
||||
});
|
||||
|
@ -6,7 +6,7 @@ import java.io.FileNotFoundException;
|
||||
import java.io.FileReader;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import labyrinthe.*;
|
||||
import modeles.*;
|
||||
public class Generateur {
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
package json;
|
||||
import modeles.Salle;
|
||||
import labyrinthe.Salle;
|
||||
import com.google.gson.Gson;
|
||||
|
||||
public class gsonGenerator {
|
||||
|
@ -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}]}
|
@ -2,7 +2,7 @@ package json;
|
||||
|
||||
|
||||
import modeles.Arme;
|
||||
import modeles.Labyrinthe;
|
||||
import labyrinthe.*;
|
||||
import modeles.Monstre;
|
||||
|
||||
public class main {
|
||||
|
220
JAVA/PROJET-PMT_STRI1A/src/labyrinthe/Labyrinthe.java
Normal file
220
JAVA/PROJET-PMT_STRI1A/src/labyrinthe/Labyrinthe.java
Normal file
@ -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;
|
||||
}
|
||||
}
|
60
JAVA/PROJET-PMT_STRI1A/src/labyrinthe/Porte.java
Normal file
60
JAVA/PROJET-PMT_STRI1A/src/labyrinthe/Porte.java
Normal file
@ -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 + "]";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
95
JAVA/PROJET-PMT_STRI1A/src/labyrinthe/Salle.java
Normal file
95
JAVA/PROJET-PMT_STRI1A/src/labyrinthe/Salle.java
Normal file
@ -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 + "]";
|
||||
}
|
||||
}
|
@ -24,7 +24,7 @@ public class Bourse extends Objet {
|
||||
return "Bourse";
|
||||
}
|
||||
|
||||
public int Achat(Objet o) { //commande pour v<EFBFBD>rifier si la personne peut acheter un objet et pour faire le d<EFBFBD>compte de la thunasse
|
||||
public int Achat(Objet o) { //verifie que l'on peut acheter l'objet
|
||||
if (o.getPrix() <= this.valeur) return (this.valeur=this.valeur-o.getPrix());
|
||||
else {
|
||||
int manque =o.getPrix()-this.valeur;
|
||||
@ -32,10 +32,4 @@ public class Bourse extends Objet {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
public int fusionBourse(Bourse sacPiece) {
|
||||
this.valeur += sacPiece.valeur;
|
||||
return this.valeur;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
package modeles;
|
||||
|
||||
import labyrinthe.*;
|
||||
/**
|
||||
* @author Nicolas
|
||||
*
|
||||
@ -20,6 +20,11 @@ public class EtreVivant {
|
||||
* @param salle
|
||||
* @param vivant
|
||||
*/
|
||||
|
||||
public void soin() {
|
||||
this.pVie=this.pVieMax;
|
||||
}
|
||||
|
||||
public EtreVivant(String nom, int pVieMax, int pAttaque) {
|
||||
super();
|
||||
this.nom = nom;
|
||||
@ -28,90 +33,94 @@ public class EtreVivant {
|
||||
this.pAttaque = pAttaque;
|
||||
this.vivant = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the nom
|
||||
*/
|
||||
public String getNom() {
|
||||
return nom;
|
||||
}
|
||||
/**
|
||||
* @param nom the nom to set
|
||||
*/
|
||||
public void setNom(String nom) {
|
||||
this.nom = nom;
|
||||
}
|
||||
/**
|
||||
* @return the pVieMax
|
||||
*/
|
||||
public int getpVieMax() {
|
||||
return pVieMax;
|
||||
}
|
||||
/**
|
||||
* @param pVieMax the pVieMax to set
|
||||
*/
|
||||
public void setpVieMax(int pVieMax) {
|
||||
this.pVieMax = pVieMax;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the pVie
|
||||
*/
|
||||
public int getpVie() {
|
||||
return pVie;
|
||||
}
|
||||
/**
|
||||
* @param pVie the pVie to set
|
||||
*/
|
||||
public void setpVie(int pVie) {
|
||||
this.pVie = pVie;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the pAttaque
|
||||
*/
|
||||
public int getpAttaque() {
|
||||
return pAttaque;
|
||||
}
|
||||
/**
|
||||
* @param pAttaque the pAttaque to set
|
||||
*/
|
||||
public void setpAttaque(int pAttaque) {
|
||||
this.pAttaque = pAttaque;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the salle
|
||||
*/
|
||||
public Salle getSalle() {
|
||||
return salle;
|
||||
}
|
||||
/**
|
||||
* @param salle the salle to set
|
||||
*/
|
||||
public void setSalle(Salle salle) {
|
||||
this.salle = salle;
|
||||
|
||||
public int getPvMax() {
|
||||
return this.pVieMax;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the pVieMax
|
||||
*/
|
||||
public int getpVieMax() {
|
||||
return pVieMax;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the vivant
|
||||
*/
|
||||
public boolean isVivant() {
|
||||
return vivant;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param nom the nom to set
|
||||
*/
|
||||
public void setNom(String nom) {
|
||||
this.nom = nom;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param pVieMax the pVieMax to set
|
||||
*/
|
||||
public void setpVieMax(int pVieMax) {
|
||||
this.pVieMax = pVieMax;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param pVie the pVie to set
|
||||
*/
|
||||
public void setpVie(int pVie) {
|
||||
this.pVie = pVie;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param pAttaque the pAttaque to set
|
||||
*/
|
||||
public void setpAttaque(int pAttaque) {
|
||||
this.pAttaque = pAttaque;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param salle the salle to set
|
||||
*/
|
||||
public void setSalle(Salle salle) {
|
||||
this.salle = salle;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param vivant the vivant to set
|
||||
*/
|
||||
public void setVivant(boolean vivant) {
|
||||
this.vivant = vivant;
|
||||
}
|
||||
|
||||
public int getPvMax() {
|
||||
return this.pVieMax;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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,114 +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>();
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,37 +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="<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;
|
||||
}
|
||||
|
||||
}
|
@ -1,180 +0,0 @@
|
||||
package modeles;
|
||||
import gui.*;
|
||||
import java.io.IOException;
|
||||
import java.util.Random;
|
||||
import java.awt.*;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
public class Menu {
|
||||
|
||||
private JeuSalle js= new JeuSalle();
|
||||
/**
|
||||
* @return the js
|
||||
*/
|
||||
|
||||
public String menuCombat(Monstre mons, Personnage perso, Labyrinthe lab) throws IOException {
|
||||
int degat;
|
||||
int reponse = 0;
|
||||
|
||||
js.ecrire("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'<27>ternit<69>.";
|
||||
}
|
||||
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() {
|
||||
js.ecrire("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) {
|
||||
JPanel panel =js.ecrire("Bonjour Etranger, je suis le narrateur de votre histoire. Comment dois-je vous appeler ? ");
|
||||
js.cacher(panel);
|
||||
int i = 0;
|
||||
for (Personnage per : lab.listePersonnage) {
|
||||
js.ecrire(i++ + ") "+per.getNom());
|
||||
}
|
||||
|
||||
Personnage pers;
|
||||
try{
|
||||
pers =lab.listePersonnage.get(js.toucheint());
|
||||
|
||||
}
|
||||
catch(Exception e) {
|
||||
js.ecrire("Le personnage dont vous me parlez n'existe pas.");
|
||||
return null;
|
||||
}
|
||||
js.ecrire("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<75>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<75>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 ;
|
||||
}
|
||||
}
|
||||
}
|
||||
public Labyrinthe nouvellePartie() {
|
||||
System.out.println("Nouvelle partie!");
|
||||
|
||||
return new Labyrinthe();
|
||||
}
|
||||
|
||||
public Labyrinthe continuer() {
|
||||
System.out.println("Continuer");
|
||||
Generateur ge = new Generateur();
|
||||
return ge.labyrinthe();
|
||||
}
|
||||
public String textePerso(Labyrinthe lab) {
|
||||
String str ="<html>";
|
||||
str = str + "<br>Bonjour Etranger, je suis le narrateur de votre histoire. Comment dois-je vous appeler ? </br>";
|
||||
int i = 0;
|
||||
for (Personnage per : lab.listePersonnage) {
|
||||
str =str + "<br>" + (i++ + ") "+per.getNom())+"</br>";
|
||||
}
|
||||
str=str+"</html>";
|
||||
return str;
|
||||
|
||||
}
|
||||
public JeuSalle getJs() {
|
||||
return js;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
*
|
||||
*/
|
||||
package modeles;
|
||||
|
||||
import labyrinthe.*;
|
||||
/**
|
||||
* @author Nicolas
|
||||
*
|
||||
@ -18,9 +18,13 @@ public class Monstre extends EtreVivant {
|
||||
|
||||
}
|
||||
|
||||
public int attaquer(Personnage def) {
|
||||
public int attaquer(Personnage def,Labyrinthe lab) {
|
||||
int pAttaqueLoc;
|
||||
if (def.getArmure()!=null) pAttaqueLoc=this.getpAttaque()-(def.getArmure().getpArmure());
|
||||
|
||||
if (def.getArmure()>=0) {
|
||||
lab.getListeArmure().get(def.getArmure()).utilisation();
|
||||
pAttaqueLoc=this.getpAttaque()-(lab.getListeArmure().get(def.getArmure()).getpArmure());
|
||||
}
|
||||
else pAttaqueLoc=this.getpAttaque();
|
||||
def.pVie-=pAttaqueLoc;
|
||||
if (def.pVie<=0)def.setVivant(false);
|
||||
|
@ -28,7 +28,7 @@ public abstract class Objet {
|
||||
|
||||
public void utilisation() { // diminue la résistance de l'objet
|
||||
this.usure--;
|
||||
if (this.usure == 0) System.out.println(this.nom+"s'est cassée !");
|
||||
if (this.usure == 0) System.out.println("\n\noh non ! "+this.nom+" s'est cassée !\n\n");
|
||||
}
|
||||
|
||||
public abstract String getType();
|
||||
|
@ -1,14 +1,14 @@
|
||||
|
||||
package modeles;
|
||||
|
||||
import labyrinthe.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
public class Personnage extends EtreVivant {
|
||||
|
||||
private Arme arme;
|
||||
private Armure armure;
|
||||
private int arme =-1;
|
||||
private int armure=-1;
|
||||
private Bourse bourse;
|
||||
private List<Potion> listepotion= new ArrayList<Potion>();
|
||||
|
||||
@ -17,13 +17,38 @@ public class Personnage extends EtreVivant {
|
||||
this.bourse=new Bourse(0);
|
||||
}
|
||||
|
||||
public void equiper(Arme arme) {
|
||||
arme.setProprietaire(this);
|
||||
this.arme=arme;
|
||||
/**
|
||||
* @return the armure
|
||||
*/
|
||||
public int getArmure() {
|
||||
return armure;
|
||||
}
|
||||
public void equiper(Armure armure) {
|
||||
armure.setProprietaire(this);
|
||||
this.armure=armure;
|
||||
|
||||
public Bourse getBourse() {
|
||||
return this.bourse;
|
||||
}
|
||||
|
||||
public List<Potion> getPotion() {
|
||||
return this.listepotion;
|
||||
}
|
||||
|
||||
public int getValeurBourse() {
|
||||
return this.getBourse().getValeur();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the arme
|
||||
*/
|
||||
public int getArme() {
|
||||
return arme;
|
||||
}
|
||||
|
||||
|
||||
public void equiper(Arme arme,Labyrinthe lab) {
|
||||
this.arme=lab.getListeArme().indexOf(arme);
|
||||
}
|
||||
public void equiper(Armure armure,Labyrinthe lab) {
|
||||
this.armure=lab.getListeArmure().indexOf(armure);
|
||||
}
|
||||
|
||||
public void utiliser(Potion potion) {
|
||||
@ -34,28 +59,17 @@ public void equiper(Armure armure) {
|
||||
this.salle=salle;
|
||||
}
|
||||
|
||||
public void allerMarche(Salle marche){
|
||||
this.salle=marche;
|
||||
}
|
||||
|
||||
public List<Potion> getPotion() {
|
||||
return this.listepotion;
|
||||
}
|
||||
|
||||
public void gagnerUnePotion() {
|
||||
Potion potion=new Potion(100);
|
||||
listepotion.add(potion);
|
||||
}
|
||||
|
||||
public void soin() {
|
||||
this.pVie=this.pVieMax;
|
||||
}
|
||||
|
||||
public int attaquer(Monstre monstre) {
|
||||
if(arme!=null) {
|
||||
monstre.pVie=monstre.pVie-(arme.getpArme()+getpAttaque());
|
||||
public int attaquer(Monstre monstre,Labyrinthe lab) {
|
||||
if(arme>=0) {
|
||||
lab.getListeArme().get(arme).utilisation();
|
||||
monstre.pVie=monstre.pVie-(lab.getListeArme().get(arme).getpArme()+getpAttaque());
|
||||
if (monstre.pVie<=0)monstre.setVivant(false);
|
||||
return arme.getpArme()+getpAttaque();
|
||||
return lab.getListeArme().get(arme).getpArme()+getpAttaque();
|
||||
}
|
||||
else {
|
||||
monstre.pVie=monstre.pVie-getpAttaque();
|
||||
@ -64,38 +78,15 @@ public void equiper(Armure armure) {
|
||||
}
|
||||
}
|
||||
|
||||
public Bourse getBourse() {
|
||||
return this.bourse;
|
||||
}
|
||||
|
||||
public int getValeurBourse() {
|
||||
return this.getBourse().getValeur();
|
||||
}
|
||||
/**
|
||||
* @return the arme
|
||||
*/
|
||||
public Arme getArme() {
|
||||
return arme;
|
||||
}
|
||||
|
||||
public String remplirBourse() {
|
||||
Random rd = new Random();
|
||||
int piece = rd.nextInt(20);
|
||||
//this.bourse.fusionBourse(new Bourse(rd.nextInt(20)));
|
||||
this.bourse.setValeur(this.bourse.getValeur()+piece);
|
||||
String str="Vous avez gagnez une bourse. Vous comptez vos piéces... Genial !! Vous avez désormais ".concat(String.valueOf(this.getValeurBourse()).concat(" pi<70>ces d'argent !"));
|
||||
System.out.println("bourse:"+this.bourse.getValeur());
|
||||
this.bourse.setValeur(this.bourse.getValeur()+rd.nextInt(20));
|
||||
String str="Vous avez gagnez une bourse. Vous comptez vos pieces... Genial !! Vous avez desormais "+this.getValeurBourse()+" pieces d'argent !";
|
||||
return str;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the armure
|
||||
*/
|
||||
public Armure getArmure() {
|
||||
return armure;
|
||||
}
|
||||
|
||||
|
||||
public void soin(int heal) {
|
||||
if (pVie+heal > pVieMax)pVie=pVieMax;
|
||||
else pVie+=heal;
|
||||
|
@ -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);
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
package modeles;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
|
||||
|
||||
public class sauvegarde {
|
||||
|
||||
public void enregistrerPersonnage(Labyrinthe lab) {
|
||||
try {
|
||||
File f= new File("./personnage.json");
|
||||
f.createNewFile();
|
||||
FileWriter fw= new FileWriter(f,true);
|
||||
for (int i =0; i<lab.listePersonnage.size();i++) {
|
||||
fw.write("{\n\t \"nom\" : \""+lab.listePersonnage.get(i).getNom()+"\" ,"
|
||||
+ "\n\t \"pVieMax\" : \""+lab.listePersonnage.get(i).getPvMax()
|
||||
+"\" ,\n\t \"pVie\" : \""+lab.listePersonnage.get(i).getpVie()
|
||||
+"\" ,\n\t \"pAttaque\" : \""+lab.listePersonnage.get(i).getpAttaque()
|
||||
//+"\" ,\n\t \"salle\" : \""+lab.listePersonnage.get(i).getSalle().getPositionX()+" "+lab.listePersonnage.get(i).getSalle().getPositionY() /*attention pour la r<>cup<75>ration de sauvegarde*/
|
||||
+"\" ,\n\t \"vivant\" : \""+lab.listePersonnage.get(i).isVivant() +"\n\t \"arme\" : \""+lab.listePersonnage.get(i).getArme().getNom()
|
||||
+"\" ,\n\t \"armure\" : \""+lab.listePersonnage.get(i).getArmure().getNom() +"\n\t \"bourse\" : \""+lab.listePersonnage.get(i).getBourse().getValeur()+"\n}"); /* attention pour la r<>cup<75>ration de donn<6E>e */
|
||||
}
|
||||
fw.flush();
|
||||
fw.close();
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
/*
|
||||
public void enregistrerLabyrinthe(Labyrinthe lab) { // <EFBFBD> faire
|
||||
try {
|
||||
File f = new File ("./labyrinthe.json");
|
||||
f.createNewFile();
|
||||
FileWriter fw= new FileWriter(f,true);
|
||||
for(int i = 0; i<lab.listeSalle.size();i++) {
|
||||
fw.write("{\n\t [ \n\t{\n\t ");
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 32 KiB |
Loading…
Reference in New Issue
Block a user