diff --git a/src/controleur/ControlAcheterProduit.java b/src/controleur/ControlAcheterProduit.java index 5b2c00b0..eea35ca9 100644 --- a/src/controleur/ControlAcheterProduit.java +++ b/src/controleur/ControlAcheterProduit.java @@ -1,5 +1,7 @@ package controleur; +import personnages.Gaulois; +import villagegaulois.Etal; import villagegaulois.Village; public class ControlAcheterProduit { @@ -7,6 +9,8 @@ public class ControlAcheterProduit { private ControlTrouverEtalVendeur controlTrouverEtalVendeur; private ControlVerifierIdentite controlVerifierIdentite; + + public ControlAcheterProduit(ControlVerifierIdentite controlVerifierIdentite, ControlTrouverEtalVendeur controlTrouverEtalVendeur, Village village) { @@ -15,5 +19,18 @@ public ControlAcheterProduit(ControlVerifierIdentite controlVerifierIdentite, this.controlTrouverEtalVendeur = controlTrouverEtalVendeur; } + public Gaulois[] trouveVendeurs (String nomProduit){ + return village.rechercherVendeursProduit(nomProduit); + } + + public int nbrProduitDisponible(Gaulois vendeur){ + Etal etal =village.rechercherEtal(vendeur); + return etal.getQuantite(); + } + + public void acheterProduit(int nbrProduit,Gaulois vendeur){ + Etal etal =village.rechercherEtal(vendeur); + etal.acheterProduit(nbrProduit); + } //TODO a completer } diff --git a/src/controleur/ControlAfficherMarche.java b/src/controleur/ControlAfficherMarche.java index d79664ea..62b00cb8 100644 --- a/src/controleur/ControlAfficherMarche.java +++ b/src/controleur/ControlAfficherMarche.java @@ -7,6 +7,10 @@ public class ControlAfficherMarche { public ControlAfficherMarche(Village village) { this.village = village; + + } + public String[] donnerMarcher(){ + return village.donnerEtatMarche(); } //TODO a completer diff --git a/src/controleur/ControlLibererEtal.java b/src/controleur/ControlLibererEtal.java index 852958a6..0cac7472 100644 --- a/src/controleur/ControlLibererEtal.java +++ b/src/controleur/ControlLibererEtal.java @@ -1,11 +1,24 @@ package controleur; +import personnages.Gaulois; +import villagegaulois.Village; +import villagegaulois.Etal; public class ControlLibererEtal { private ControlTrouverEtalVendeur controlTrouverEtalVendeur; + private Village village; public ControlLibererEtal( - ControlTrouverEtalVendeur controlTrouverEtalVendeur) { + ControlTrouverEtalVendeur controlTrouverEtalVendeur,Village village) { this.controlTrouverEtalVendeur = controlTrouverEtalVendeur; + this.village = village; + } + + public boolean isVendeur(String nomVendeur){ + Etal etal = controlTrouverEtalVendeur.trouverEtalVendeur(nomVendeur); + if (etal != null){ + return true; + } + return false; } //TODO a completer @@ -19,9 +32,11 @@ public ControlLibererEtal( * quantité de produit vendu */ public String[] libererEtal(String nomVendeur) { - //TODO a completer - String[] donneesEtal = null; - return donneesEtal; + Gaulois vendeur = village.trouverHabitant(nomVendeur); + Etal etal = village.rechercherEtal(vendeur); + String donner[] = etal.etatEtal(); + etal.libererEtal(); + return donner; } } diff --git a/src/controleur/ControlTrouverEtalVendeur.java b/src/controleur/ControlTrouverEtalVendeur.java index 0f1ecc16..70247012 100644 --- a/src/controleur/ControlTrouverEtalVendeur.java +++ b/src/controleur/ControlTrouverEtalVendeur.java @@ -1,5 +1,6 @@ package controleur; +import personnages.Gaulois; import villagegaulois.Etal; import villagegaulois.Village; @@ -11,8 +12,11 @@ public ControlTrouverEtalVendeur(Village village) { } public Etal trouverEtalVendeur(String nomVendeur) { - //TODO a completer + Gaulois vendeur = village.trouverHabitant(nomVendeur); Etal etal = null; + if (vendeur != null){ + etal = village.rechercherEtal(vendeur); + } return etal; } } diff --git a/src/frontiere/BoundaryAcheterProduit.java b/src/frontiere/BoundaryAcheterProduit.java index 3d6edcd0..044f0ea3 100644 --- a/src/frontiere/BoundaryAcheterProduit.java +++ b/src/frontiere/BoundaryAcheterProduit.java @@ -3,16 +3,68 @@ import java.util.Scanner; import controleur.ControlAcheterProduit; +import controleur.ControlVerifierIdentite; +import personnages.Gaulois; + +import static frontiere.Clavier.entrerEntier; public class BoundaryAcheterProduit { private Scanner scan = new Scanner(System.in); private ControlAcheterProduit controlAcheterProduit; + private ControlVerifierIdentite controlVerifierIdentite; - public BoundaryAcheterProduit(ControlAcheterProduit controlAcheterProduit) { + public BoundaryAcheterProduit( + ControlAcheterProduit controlAcheterProduit ,ControlVerifierIdentite controlVerifierIdentite) { this.controlAcheterProduit = controlAcheterProduit; + this.controlVerifierIdentite = controlVerifierIdentite; } public void acheterProduit(String nomAcheteur) { - // TODO à completer + Boolean villageois = controlVerifierIdentite.verifierIdentite(nomAcheteur); + System.out.println("Quel produit voulez-vous acheter ?"); + String nomProduit = scan.nextLine(); + + Gaulois vendeurs[] = controlAcheterProduit.trouveVendeurs(nomProduit); + if(!villageois){ + System.out.println("Desolé mais on vend que au villageois et vous n'en faite pas partie."); + } + else if(vendeurs == null){ + System.out.println("Désolé mais personne ne vend de " + nomProduit + " ici allez vois ailleur "); + } + else{ + StringBuilder question = new StringBuilder(); + question.append("Chez quel commercant voulez vous acheter des fleurs ?\n"); + + for(int i = 0; i0){ + choix = entrerEntier(question.toString()); + } + + Gaulois vendeur = vendeurs[choix-1]; + System.out.println(nomAcheteur+" se deplace jusqu'à l'étal du vendeur "+vendeur.getNom()+"\n" ); + StringBuilder question2 = new StringBuilder(); + + int nbrProduitDisponible = controlAcheterProduit.nbrProduitDisponible(vendeur); + + if (nbrProduitDisponible == 0) { + System.out.println("Désole mais " + vendeur.getNom() + " n'a plus de " + nomProduit + " a vendre\n"); + } + else { + question2.append("Combien de "+nomProduit + " voulez vous acheter ?\n"); + int nbrProduit = entrerEntier(question2.toString()); + + while (nbrProduit > nbrProduitDisponible) { + System.out.println(vendeur.getNom() +"n'a que "+nbrProduitDisponible +" de "+nomProduit+"\n"); + nbrProduit = entrerEntier(question2.toString()); + } + + controlAcheterProduit.acheterProduit(nbrProduit,vendeur); + System.out.println( + nomAcheteur + " a acheter "+ nbrProduit+ " de "+nomProduit+" a " + vendeur.getNom() +"\n"); + } + } } } diff --git a/src/frontiere/BoundaryAfficherMarche.java b/src/frontiere/BoundaryAfficherMarche.java index ce1911cc..52eff75c 100644 --- a/src/frontiere/BoundaryAfficherMarche.java +++ b/src/frontiere/BoundaryAfficherMarche.java @@ -9,6 +9,19 @@ public BoundaryAfficherMarche(ControlAfficherMarche controlAfficherMarche) { this.controlAfficherMarche = controlAfficherMarche; } public void afficherMarche(String nomAcheteur) { - + String infoMarche[] = controlAfficherMarche.donnerMarcher(); + if (infoMarche.length == 0){ + System.out.println("Le marché est vide, revenez plus tard.\n"); + }else{ + System.out.println(nomAcheteur + " vous trouverais au marché "); + for(int i = 0 ; i< infoMarche.length;i++){ + String vendeur = infoMarche[i]; + i++; + int quantite = Integer.parseInt(infoMarche[i]); + i++; + String produit = infoMarche[i]; + System.out.println(" -" + vendeur + " qui vend " + quantite + " " + produit); + } + } } } diff --git a/src/frontiere/BoundaryEmmenager.java b/src/frontiere/BoundaryEmmenager.java index a8c930e3..e6c084a4 100644 --- a/src/frontiere/BoundaryEmmenager.java +++ b/src/frontiere/BoundaryEmmenager.java @@ -33,7 +33,7 @@ public void emmenager(String nomVisiteur) { case 2: System.out.println( - "Bienvenue Villageois"); + "Bienvenue Villageois" + nomVisiteur); StringBuilder question2 = new StringBuilder(); question2.append("Quelle est votre force ?\n"); int force = Clavier.entrerEntier(question2.toString()); @@ -71,7 +71,5 @@ private void emmenagerDruide(String nomVisiteur) { } controlEmmenager.ajouterDruide(nomVisiteur, forceDruide, effetPotionMin, effetPotionMax); - - } } diff --git a/src/frontiere/BoundaryLibererEtal.java b/src/frontiere/BoundaryLibererEtal.java index 7d0f6102..59930feb 100644 --- a/src/frontiere/BoundaryLibererEtal.java +++ b/src/frontiere/BoundaryLibererEtal.java @@ -10,7 +10,21 @@ public BoundaryLibererEtal(ControlLibererEtal controlLibererEtal) { } public void libererEtal(String nomVendeur) { - //TODO a completer + if (!controlLibererEtal.isVendeur(nomVendeur)){ + System.out.println("Mais vous n'êtes pas un vendeur sur notre marché aujourd'hui !\n"); + } + else{ + String donnnesEtal[] =controlLibererEtal.libererEtal(nomVendeur); + boolean etalOccupe = Boolean.parseBoolean(donnnesEtal[0]); + if (etalOccupe){ + String produit = donnnesEtal[2]; + int quantiteInitial = Integer.parseInt(donnnesEtal[3]); + int quantiteVendu = Integer.parseInt(donnnesEtal[4]); + System.out.println("Vous avez vendu " + quantiteVendu + " sur " + quantiteInitial + " " + produit + ".\n"); + System.out.println("Au revoir "+nomVendeur + "passez une bonne journée"); + } + } + } } diff --git a/src/histoire/Scenario.java b/src/histoire/Scenario.java index cb3d85f1..a417604b 100644 --- a/src/histoire/Scenario.java +++ b/src/histoire/Scenario.java @@ -37,7 +37,7 @@ public static void main(String[] args) { ControlPrendreEtal controlChercherEtal = new ControlPrendreEtal( controlVerifierIdentite, village); ControlLibererEtal controlLibererEtal = new ControlLibererEtal( - controlTrouverEtalVendeur); + controlTrouverEtalVendeur,village); ControlAcheterProduit controlAcheterProduit = new ControlAcheterProduit( controlVerifierIdentite, controlTrouverEtalVendeur, village); ControlAfficherMarche controlAfficherMarche = new ControlAfficherMarche( @@ -53,7 +53,7 @@ public static void main(String[] args) { BoundaryLibererEtal boundaryLibererEtal = new BoundaryLibererEtal( controlLibererEtal); BoundaryAcheterProduit boundaryAcheterProduit = new BoundaryAcheterProduit( - controlAcheterProduit); + controlAcheterProduit,controlVerifierIdentite); BoundaryAfficherMarche boundaryAfficherMarche = new BoundaryAfficherMarche( controlAfficherMarche); BoundaryLeVillage boundaryLeMarche = new BoundaryLeVillage(