Commit 24c93b09 authored by Chevrier Florine's avatar Chevrier Florine
Browse files

Ajout JoueurHumain

parent 3ec7b150
package fr.insarouen.asi.prog.asiaventure;
import java.util.*;
import java.io.*;
import java.lang.*;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.JoueurHumain;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.Vivant;
import fr.insarouen.asi.prog.asiaventure.elements.structure.Porte;
import fr.insarouen.asi.prog.asiaventure.elements.Executable;
import fr.insarouen.asi.prog.asiaventure.EtatDuJeu;
public class Main{
public void Main(){}
private void affichage_clear(){
for(int i=0;i<70;i++){
System.out.println();
}
}
private void affichageMenu(){
this.affichage_clear();
System.out.println(" --- Menu ---");
System.out.println("1/ jouer");
System.out.println("2/ charger un fichier de description");
System.out.println("3/ sauver la partie actuelle");
System.out.println("4/ charger une partie");
System.out.println("5/ quitter");
}
private void affichage_fic_description(){
this.affichage_clear();
System.out.println(" --- Charger fichier de description ---");
System.out.println();
System.out.println();
System.out.println("Quel est le nom de votre fichier ? (situé dans le dossier /fichiers_description)");
System.out.println("menu pour revenir au Menu");
}
private Simulateur charger_fic_desc(Scanner sc1) throws Throwable{
boolean fic_charge = false;
String fic;
StringBuilder b;
Simulateur simulateur = null;
this.affichage_fic_description();
while(!fic_charge){
b = new StringBuilder("./fichiers_description/");
fic = sc1.next();
if (fic.equals("menu")){
fic_charge = true;
}else{
b.append(fic);
try{
simulateur = new Simulateur(new FileReader(b.toString()));
fic_charge = true;
}catch(FileNotFoundException exception){
System.out.println();
System.out.println();
System.out.println("Fichier introuvable");
}
}
}
return simulateur;
}
private void affichage_sauvegarde(){
this.affichage_clear();
System.out.println(" --- Sauver la partie actuelle ---");
System.out.println();
System.out.println();
System.out.println("Quel est le nom de votre fichier ? (Il sera situé dans le dossier /sauvegardes)");
System.out.println("menu pour revenir au Menu");
}
}
package fr.insarouen.asi.prog.asiaventure;
import java.io.*;
import java.util.*;
import java.lang.reflect.*;
import fr.insarouen.asi.prog.asiaventure.Monde;
import fr.insarouen.asi.prog.asiaventure.elements.structure.Piece;
import fr.insarouen.asi.prog.asiaventure.elements.objets.serrurerie.Serrure;
import fr.insarouen.asi.prog.asiaventure.elements.structure.Porte;
import fr.insarouen.asi.prog.asiaventure.NomDEntiteDejaUtiliseDansLeMondeException;
import fr.insarouen.asi.prog.asiaventure.EntiteDejaDansUnAutreMondeException;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.JoueurHumain;
import fr.insarouen.asi.prog.asiaventure.elements.Entite;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.Vivant;
import fr.insarouen.asi.prog.asiaventure.EtatDuJeu;
import fr.insarouen.asi.prog.asiaventure.elements.Executable;
import fr.insarouen.asi.prog.asiaventure.elements.objets.serrurerie.Clef;
import fr.insarouen.asi.prog.asiaventure.elements.objets.Objet;
public class Simulateur{
public Monde monde;
public EtatDuJeu etatDuJeu;
public Simulateur(Reader reader) throws java.io.IOException, NomDEntiteDejaUtiliseDansLeMondeException, EntiteDejaDansUnAutreMondeException{
Scanner sc = new Scanner(reader);
while (sc.hasNext()){
switch(sc.next()){
case "Monde":
construitMonde(sc);
break;
case "Piece":
construitPiece(sc);
break;
case "Porte":
construitPorte(sc);
break;
case "PorteSerrure":
construitPorteSerrure(sc);
break;
case "Clef":
construitClef(sc);
break;
case "JoueurHumain":
construitJoueur(sc);
break;
default:
sc.next();
break;
}
}
}
private void construitMonde(Scanner sc){
this.monde = new Monde(sc.next());
}
private void construitPiece(Scanner sc) throws NomDEntiteDejaUtiliseDansLeMondeException, EntiteDejaDansUnAutreMondeException{
Piece piece = new Piece(sc.next(), this.monde);
}
private void construitPorte(Scanner sc) throws NomDEntiteDejaUtiliseDansLeMondeException, EntiteDejaDansUnAutreMondeException{
String nomPorte = sc.next();
Piece pieceA = new Piece(sc.next(), this.monde);
Piece pieceB = new Piece(sc.next(), this.monde);
Porte porte = new Porte(nomPorte, this.monde, pieceA, pieceB);
}
private void construitPorteSerrure(Scanner sc) throws NomDEntiteDejaUtiliseDansLeMondeException, EntiteDejaDansUnAutreMondeException{
String nomPorte,nomPieceA,nomPieceB;
Serrure serrure = new Serrure(this.monde);
Piece pieceA, pieceB;
nomPorte = sc.next();
nomPieceA = sc.next();
nomPieceB = sc.next();
pieceA = (Piece)this.monde.getEntite(nomPieceA);
pieceB = (Piece)this.monde.getEntite(nomPieceB);
new Porte(nomPorte,this.monde,serrure,pieceA,pieceB);
}
private void construitClef(Scanner sc) throws NomDEntiteDejaUtiliseDansLeMondeException, EntiteDejaDansUnAutreMondeException{
String nomPorte = sc.next();
String nomPiece = sc.next();
Piece piece;
Serrure serrure;
Porte porte;
piece = (Piece)this.monde.getEntite(nomPiece);
porte = (Porte)this.monde.getEntite(nomPorte);
serrure = porte.getSerrure();
piece.deposer(serrure.creerLaClef());
}
private void construitJoueur(Scanner sc) throws NomDEntiteDejaUtiliseDansLeMondeException, EntiteDejaDansUnAutreMondeException{
String nomHumain = sc.next();
String pv = sc.next();
String pf = sc.next();
String nomPiece = sc.next();
Piece piece = (Piece)this.monde.getEntite(nomPiece);
new JoueurHumain(nomHumain,this.monde,Integer.parseInt(pv),Integer.parseInt(pf),piece);
}
}
package fr.insarouen.asi.prog.asiaventure.elements.vivants;
import fr.insarouen.asi.prog.asiaventure.elements.Executable;
import fr.insarouen.asi.prog.asiaventure.NomDEntiteDejaUtiliseDansLeMondeException;
import fr.insarouen.asi.prog.asiaventure.EntiteDejaDansUnAutreMondeException;
import fr.insarouen.asi.prog.asiaventure.Monde;
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.objets.Objet;
import fr.insarouen.asi.prog.asiaventure.elements.structure.ObjetAbsentDeLaPieceException;
import fr.insarouen.asi.prog.asiaventure.elements.objets.ObjetNonDeplacableException;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.ObjetNonPossedeParLeVivantException;
import fr.insarouen.asi.prog.asiaventure.elements.vivants.CommandeImpossiblePourLeVivantException;
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.ActivationException;
import fr.insarouen.asi.prog.asiaventure.elements.structure.VivantAbsentDeLaPieceException;
import java.io.*;
import java.lang.reflect.*;
public class JoueurHumain extends Vivant {
private String ordre;
public JoueurHumain(String nom, Monde monde, int pointVie, int pointForce, Piece piece, Objet... objets) throws NomDEntiteDejaUtiliseDansLeMondeException, EntiteDejaDansUnAutreMondeException{
super(nom, monde, pointVie, pointForce, piece, objets);
}
public void setOrdre(String ordre){
this.ordre = ordre;
}
public void executer() throws CommandeImpossiblePourLeVivantException, Throwable{
}
private void commandePrendre(String nomObjet)throws ObjetAbsentDeLaPieceException, ObjetNonDeplacableException{
this.prendre(nomObjet);
}
private void commandePoser(String nomObjet)throws ObjetNonPossedeParLeVivantException {
this.deposer(nomObjet);
}
private void commandeFranchir(String nomPorte)throws PorteFermeException, PorteInexistanteDansLaPieceException, VivantAbsentDeLaPieceException {
this.franchir(nomPorte);
}
private void commandeOuvrirPorte(String nomPorte)throws ActivationException, PorteInexistanteDansLaPieceException, VivantAbsentDeLaPieceException {
this.piece.getPorte(nomPorte).activer();
}
private void commandeOuvrirPorte(String nomPorte, String nomObjet)throws ActivationException, PorteInexistanteDansLaPieceException,ObjetNonPossedeParLeVivantException, VivantAbsentDeLaPieceException{
this.piece.getPorte(nomPorte).activerAvec(this.getObjet(nomObjet));
}
}
Markdown is supported
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