Package draftdb

Source Code of draftdb.Simulation

package draftdb;

import draftdb.intelligences.IA_Realiste;
import draftdb.intelligences.Intelligence;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jdom2.output.XMLOutputter;

public class Simulation {
   
    HashMap<Integer, Coureur> coureursLibres;
    Map<Integer, Intelligence> intelligencesEquipes;
    ParseurXML parseurXML;
   
    public Simulation(FichierCDB fichierCDB) {
       
        parseurXML = fichierCDB.convertirEnXML().parser();
        parseurXML.recupererCoureurs();
        parseurXML.recupererEquipes();
       
        coureursLibres = new HashMap(parseurXML.getCoureurs());
        intelligencesEquipes = new HashMap<>();
       
        // Initialisation des intelligences des équipes
        for (Integer idEquipe : parseurXML.getEquipes().keySet()) {
            Equipe equipe = parseurXML.getEquipe(idEquipe);
            Intelligence intelligence;
           
            //if (!idEquipe.equals(parseurXML.getIdEquipeJoueur()))
                intelligence = new IA_Realiste(parseurXML.getEquipe(idEquipe), this);
            //else
                //intelligence = new IntelligenceJoueur(parseurXML.getEquipe(idEquipe), this);

            intelligence.choisirNbMaxCoureurs();
            System.out.println(equipe.getNom() + " " + intelligence.getNbMaxCoureurs());
            intelligencesEquipes.put(idEquipe, intelligence);
        }
       
    }
   
    public void simuler(int nombreTour) {
       
        System.out.println("Vous avez choisi l'équipe : " + parseurXML.getEquipeJoueur().getNom());
       
        // Boucle de simulation principale
        for (int tourCourant = 1; tourCourant <= nombreTour; tourCourant++) {
            System.out.println("Tour " + tourCourant);
           
            for (Intelligence ia : intelligencesEquipes.values()) {
                Equipe equipe = ia.getEquipe();
                if (!coureursLibres.isEmpty()) {
                    if (ia.getCompositionEquipe().size() < ia.getNbMaxCoureurs() && ia.getBudgetProvisoire() >= 2500) {
                        String messageChoix;
                        try {
                            Coureur coureurChoisi = ia.choisirCoureur();
                            messageChoix
                                    = "L'équipe " + equipe.getNom()
                                    + " à choisit le coureur " + coureurChoisi.getNom_prenom()
                                    + " (" + ia.getBudgetProvisoire()
                                    + " / " + equipe.getBudget() + ")";
                        } catch (Exception ex) {
                            messageChoix = "L'équipe " + equipe.getNom() + " ne choisit plus";
                        }
                        System.out.println(messageChoix);
                    }
                }
            }
           
        }
       
        System.out.println("Récapitulatif des compositions des équipes : ");       
        for (Intelligence ia : intelligencesEquipes.values()) {
            System.out.println("---" + ia.getEquipe().getNom() + "---");
            System.out.println(ia.getCompositionEquipe().size() + " coureurs");
            for (Coureur coureur : ia.getCompositionEquipe()) {
                System.out.println(coureur.getNom_prenom());
            }
            System.out.println("");
        }
       
        System.out.println("Coureurs libres (" + coureursLibres.size() + ") : ");
        for (Coureur coureurLibre : coureursLibres.values()) {
            System.out.println(coureurLibre.getNom_prenom() + " " + coureurLibre.getSalaire() + " " + coureurLibre.getMoyenne());
        }
    }
   
    public void sauvegarder() {
       
        System.out.println("\n Sauvegarde :");
        // Réinitialisation des équipes
        for (Coureur coureur : parseurXML.getCoureurs().values()) {
            // 119 : idEquipe pour les coureurs libres
            parseurXML.modifierEquipe(coureur.getId(), 119);
        }
        // Modification des équipes des coureurs choisis
        for (Intelligence ia : intelligencesEquipes.values()) {
            for (Coureur coureur : ia.getCompositionEquipe()) {
                parseurXML.modifierEquipe(coureur.getId(), ia.getEquipe().getId());
            }
        }
        XMLOutputter xmlSortie = new XMLOutputter();
        try {
            xmlSortie.output(parseurXML.getDocument(), new FileWriter("src/XML/tempPCM.xml"));
            FichierXML fichierXml = new FichierXML("tempPCM.xml");
            fichierXml.convertirEnCDB("test.cdb");
        } catch (IOException ex) {
            Logger.getLogger(Simulation.class.getName()).log(Level.SEVERE, null, ex);
        }
       
    }
   
    public ParseurXML getParseur() {
        return parseurXML;
    }
   
    public HashMap<Integer, Coureur> getCoureursLibres() {
        return coureursLibres;
    }
   
    public void supprimerCoureurLibre(Coureur coureur) {
        this.coureursLibres.remove((Integer)coureur.getId());
    }
}
TOP

Related Classes of draftdb.Simulation

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.