Commit c282deaf authored by Aroubate Hamza's avatar Aroubate Hamza
Browse files

début TP8

parent b615c77c
import fr.insarouen.asi.prog.asiaventure.*;
import fr.insarouen.asi.prog.asiaventure.elements.*;
import fr.insarouen.asi.prog.asiaventure.elements.objets.*;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.*;
import fr.insarouen.asi.prog.asiaventure.elements.structure.*;
import fr.insarouen.asi.prog.asiaventure.elements.objets.serrurerie.*;
import java.io.Reader;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
import java.io.FileInputStream;
public class ClassMain {
public static void main (String[] args) throws IOException, NomDEntiteDejaUtiliseDansLeMondeException, ClassNotFoundException{
Main lucas = new Main();
System.out.println(lucas.simu.monde.toString());
}
}
//javac -classpath ./classes -sourcepath ./src -d ./classes ./src/ClassMain.java
\ No newline at end of file
package fr.insarouen.asi.prog.asiaventure;
import fr.insarouen.asi.prog.asiaventure.EtatDuJeu;
import java.io.Serializable;
public abstract class ConditionDeFin implements Serializable{
private EtatDuJeu etatDuJeu;
public ConditionDeFin(EtatDuJeu etatDuJeu){
this.etatDuJeu = etatDuJeu;
}
public EtatDuJeu getEtatConditionVerifiee(){
return etatDuJeu;
}
public abstract EtatDuJeu verifierCondition();
}
\ No newline at end of file
package fr.insarouen.asi.prog.asiaventure;
import fr.insarouen.asi.prog.asiaventure.ConditionDeFin;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.Vivant;
import fr.insarouen.asi.prog.asiaventure.elements.structure.Piece;
public class ConditionDeFinVivantDansPiece extends ConditionDeFin{
private Vivant vivant;
private Piece piece;
public ConditionDeFinVivantDansPiece(EtatDuJeu etatConditionVerifiee,Vivant vivant,Piece piece){
super(etatConditionVerifiee);
this.vivant = vivant;
this.piece = piece;
}
public EtatDuJeu verifierCondition(){
if(vivant.getPiece().equals(piece))
return getEtatConditionVerifiee();
return EtatDuJeu.ENCOURS;
}
}
\ No newline at end of file
package fr.insarouen.asi.prog.asiaventure;
import fr.insarouen.asi.prog.asiaventure.ConditionDeFin;
import fr.insarouen.asi.prog.asiaventure.ConditionDeFinVivantDansPiece;
import fr.insarouen.asi.prog.asiaventure.ConditionDeFinVivantPossedeObjets;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.Vivant;
import fr.insarouen.asi.prog.asiaventure.elements.objets.Objet;
import fr.insarouen.asi.prog.asiaventure.elements.structure.Piece;
public class ConditionDeFinVivantDansPieceEtPossedeObjets extends ConditionDeFin{
private ConditionDeFinVivantDansPiece conditionPiece;
private ConditionDeFinVivantPossedeObjets conditionObjets;
public ConditionDeFinVivantDansPieceEtPossedeObjets(EtatDuJeu etatConditionVerifiee, Vivant vivant, Piece piece, Objet... objets){
super(etatConditionVerifiee);
conditionPiece = new ConditionDeFinVivantDansPiece(etatConditionVerifiee, vivant, piece);
conditionObjets = new ConditionDeFinVivantPossedeObjets(etatConditionVerifiee, vivant, objets);
}
public EtatDuJeu verifierCondition(){
if(conditionPiece.verifierCondition().equals(getEtatConditionVerifiee()) & conditionObjets.verifierCondition().equals(getEtatConditionVerifiee()))
return getEtatConditionVerifiee();
return EtatDuJeu.ENCOURS;
}
}
\ No newline at end of file
package fr.insarouen.asi.prog.asiaventure;
import fr.insarouen.asi.prog.asiaventure.ConditionDeFin;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.Vivant;
public class ConditionDeFinVivantMort extends ConditionDeFin {
private Vivant vivant;
public ConditionDeFinVivantMort(EtatDuJeu etatConditionVerifiee,Vivant vivant){
super(etatConditionVerifiee);
this.vivant = vivant;
}
public EtatDuJeu verifierCondition(){
if(vivant.getPointVie() <= 0)
return getEtatConditionVerifiee();
return EtatDuJeu.ENCOURS;
}
}
package fr.insarouen.asi.prog.asiaventure;
import fr.insarouen.asi.prog.asiaventure.ConditionDeFin;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.Vivant;
import fr.insarouen.asi.prog.asiaventure.elements.objets.Objet;
import java.util.Arrays;
public class ConditionDeFinVivantPossedeObjets extends ConditionDeFin{
private Vivant vivant;
private Objet[] objets;
public ConditionDeFinVivantPossedeObjets(EtatDuJeu etatConditionVerifiee,Vivant vivant,Objet[] objets){
super(etatConditionVerifiee);
this.vivant = vivant;
this.objets = objets;
}
public EtatDuJeu verifierCondition(){
if(vivant.getObjets().containsAll(Arrays.asList(objets)))
return getEtatConditionVerifiee();
return EtatDuJeu.ENCOURS;
}
}
\ No newline at end of file
package fr.insarouen.asi.prog.asiaventure;
import fr.insarouen.asi.prog.asiaventure.NomDEntiteDejaUtiliseDansLeMondeException;
import fr.insarouen.asi.prog.asiaventure.Monde;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.Monstre;
import fr.insarouen.asi.prog.asiaventure.elements.ActivationImpossibleException;
import fr.insarouen.asi.prog.asiaventure.elements.structure.Piece;
import fr.insarouen.asi.prog.asiaventure.elements.structure.Porte;
import fr.insarouen.asi.prog.asiaventure.elements.structure.PorteFermeException;
import fr.insarouen.asi.prog.asiaventure.elements.structure.PorteInexistanteDansLaPieceException;
import fr.insarouen.asi.prog.asiaventure.elements.objets.Coffre;
import fr.insarouen.asi.prog.asiaventure.elements.objets.PiedDeBiche;
import fr.insarouen.asi.prog.asiaventure.elements.structure.ObjetAbsentDeLaPieceException;
import fr.insarouen.asi.prog.asiaventure.elements.objets.ObjetNonDeplacableException;
import fr.insarouen.asi.prog.asiaventure.ConditionDeFinVivantDansPieceEtPossedeObjets;
import fr.insarouen.asi.prog.asiaventure.ConditionDeFinVivantDansPiece;
import fr.insarouen.asi.prog.asiaventure.ConditionDeFinVivantMort;
import java.util.Scanner;
import java.io.FileReader;
......@@ -15,13 +29,57 @@ import java.io.BufferedReader;
import java.io.FileNotFoundException;
public class Main {
public Simulateur simu;
private static Simulateur simu;
/**
* Constructeur du Main
*/
public Main() {
public static void main(String[] args) throws IOException, NomDEntiteDejaUtiliseDansLeMondeException, ClassNotFoundException, ObjetAbsentDeLaPieceException, ObjetNonDeplacableException {
//menu();
Monde insa = new Monde("lucas'monde");
PiedDeBiche tablette = new PiedDeBiche("malandain's tablette", insa);
Coffre sac = new Coffre("malandain's sac", insa);
Piece toilette = new Piece(insa, "toilette");
Piece bureau = new Piece(insa, "bureau");
Porte tepor = new Porte("tepor", insa, bureau, toilette);
Monstre malandain = new Monstre("Nico", insa, 1, 10, bureau);
ConditionDeFinVivantMort condition = new ConditionDeFinVivantMort(EtatDuJeu.SUCCES, malandain);
ConditionDeFinVivantDansPiece conditionP = new ConditionDeFinVivantDansPiece(EtatDuJeu.SUCCES, malandain, toilette);
ConditionDeFinVivantDansPieceEtPossedeObjets conditionPO = new ConditionDeFinVivantDansPieceEtPossedeObjets(EtatDuJeu.SUCCES, malandain, toilette, tablette, sac);
System.out.println(condition.verifierCondition());
malandain.setPointDeVie(0);
System.out.println(condition.verifierCondition());
System.out.println(conditionP.verifierCondition());
try{
tepor.activer();
}
catch(ActivationImpossibleException e){
System.out.println(e);
}
try{
malandain.franchir(tepor);
}
catch(PorteFermeException e){
System.out.println(e);
}
catch(PorteInexistanteDansLaPieceException e){
System.out.println(e);
}
System.out.println(conditionP.verifierCondition());
System.out.println(conditionPO.verifierCondition());
toilette.deposer(tablette);
toilette.deposer(sac);
malandain.prendre(tablette);
malandain.prendre(sac);
System.out.println(conditionPO.verifierCondition());
}
private static void menu(){
try{
Scanner sc = new Scanner(System.in);
boolean jouer = true;
......@@ -31,13 +89,16 @@ public class Main {
case 1:
break;
case 2:
chargerFicherDescription();
System.out.println("Rentrez le fichier à charger !");
chargerFicherDescription(sc.next());
break;
case 3:
sauverPartieActuelle();
System.out.println("Rentrez le fichier à charger !");
sauverPartieActuelle(sc.next());
break;
case 4 :
chargerPartie();
System.out.println("Rentrez la partie à charger !");
chargerPartie(sc.next());
break;
case 5 :
jouer = false;
......@@ -64,7 +125,7 @@ public class Main {
/**
* afficherMenu affiche le menu du jeu
*/
private void afficherMenu() {
private static void afficherMenu() {
System.out.println("\n --- Menu --- ");
System.out.println("1/ jouer ");
System.out.println("2/ charger un fichier de description ");
......@@ -79,12 +140,11 @@ public class Main {
* @throws IOException
* @throws FileNotFoundException
*/
private void chargerFicherDescription() throws FileNotFoundException, IOException, NomDEntiteDejaUtiliseDansLeMondeException {
System.out.println("Rentrez le fichier à charger !");
Scanner sc = new Scanner(System.in);
Reader reader = new BufferedReader(new FileReader(sc.next()));
simu = new Simulateur(reader);
private static void chargerFicherDescription(String fichier) throws FileNotFoundException, IOException, NomDEntiteDejaUtiliseDansLeMondeException {
Reader reader = new BufferedReader(new FileReader(fichier));
simu = new Simulateur(reader);
reader.close();
}
/**
......@@ -93,10 +153,9 @@ public class Main {
* @throws IOException
* @throws FileNotFoundException
*/
private void sauverPartieActuelle() throws FileNotFoundException, IOException, ClassNotFoundException{
System.out.println("Rentrez le fichier à charger !");
Scanner sc = new Scanner(System.in);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(sc.next()));
private static void sauverPartieActuelle(String fichier) throws FileNotFoundException, IOException, ClassNotFoundException{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(fichier));
simu.enregistrer(oos);
oos.close();
}
......@@ -107,10 +166,9 @@ public class Main {
* @throws IOException
* @throws FileNotFoundException
*/
private void chargerPartie() throws FileNotFoundException, IOException, ClassNotFoundException{
System.out.println("Rentrez la partie à charger !");
Scanner sc = new Scanner(System.in);
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(sc.next()));
private static void chargerPartie(String fichier) throws FileNotFoundException, IOException, ClassNotFoundException{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(fichier));
simu = new Simulateur(ois);
ois.close();
}
......
......@@ -24,7 +24,7 @@ import java.io.ObjectInputStream;
* etatDuJeu : l'EtatDuJeu actuel ;
*/
public class Simulateur {
public Monde monde;
private Monde monde;
private EtatDuJeu etatDuJeu;
// public Simulateur(Monde monde, ConditionDeFin... conditionsDeFin){
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment