示例#1
0
 /** permet d'evaluer la configuration en lui associant un entier */
 public int evaluer(ArrayList<Composante> ilotsJoueur, ArrayList<Composante> ilotsAdverses) {
   int valCourant = 0;
   int valAdvers = 0;
   // somme des evaluations de toutes les zones du joueur courant
   for (int l = 0; l < tabZones.get(donnees.getJoueurCourant()).size(); l++) {
     valCourant += tabZones.get(donnees.getJoueurCourant()).get(l).evaluer();
   }
   // evaluation des ilots du joueur
   for (int c = 0; c < ilotsJoueur.size(); c++) {
     valCourant += ilotsJoueur.get(c).getNbPoissons();
   }
   // evaluation des ilots adverses
   for (int c = 0; c < ilotsAdverses.size(); c++) {
     valAdvers += ilotsAdverses.get(c).getNbPoissons();
   }
   // parcours des zones des adversaires
   for (int i = 0; i < donnees.getNbJoueurs(); i++) {
     // si c'est un adversaire
     if (i != donnees.getJoueurCourant()) {
       for (int l = 0; l < tabZones.get(i).size(); l++) {
         valAdvers += tabZones.get(i).get(l).evaluer();
       }
     }
   }
   Joueur courant = donnees.getJoueurs()[donnees.getJoueurCourant()];
   if (courant.getDifficulte() == 3) {
     valCourant += 2 * courant.getNombrePoissons();
     for (int j = 0; j < donnees.getNbJoueurs(); j++) {
       if (j != donnees.getJoueurCourant()) {
         valAdvers += 2 * donnees.getJoueurs()[j].getNombrePoissons();
       }
     }
   }
   return valCourant - valAdvers;
 }
示例#2
0
 // CONSTRUCTEUR :
 public Configuration(DonneesOrdi d) {
   this.donnees = d;
   this.nbZones = new int[donnees.getNbJoueurs()];
   this.tabZones = new ArrayList<ArrayList<Zone>>();
   ArrayList<ArrayList<Tuile>> list;
   // pour tous les joueurs, on cree le terrain de zone et la liste des tuiles
   for (int i = 0; i < donnees.getNbJoueurs(); i++) {
     this.tabZones.add(new ArrayList<Zone>());
     // creation d'un terrain zones par joueur
     TerrainZone tz = new TerrainZone(donnees, donnees.getJoueurs()[i]);
     // recuperation d'une liste de listes de tuiles
     list = tz.getListeZones();
     // recuperation du nombre de zones par joueur
     this.nbZones[i] = list.size();
     // pour toutes les listes de tuiles => creation de la zone associee
     for (int j = 0; j < nbZones[i]; j++) {
       // ajout de la zone dans liste des zones du joueur i
       tabZones.get(i).add(new Zone(list.get(j), donnees, i));
     }
   }
 }
示例#3
0
 /** permet d'evaluer la configuration en lui associant un entier */
 public int evaluer() {
   int valCourant = 0;
   int valAdvers = 0;
   // somme des evaluations de toutes les zones du joueur courant
   for (int l = 0; l < tabZones.get(donnees.getJoueurCourant()).size(); l++) {
     valCourant += tabZones.get(donnees.getJoueurCourant()).get(l).evaluer();
   }
   // parcours des zones des adversaires
   for (int i = 0; i < donnees.getNbJoueurs(); i++) {
     // si c'est un adversaire
     if (i != donnees.getJoueurCourant()) {
       for (int l = 0; l < tabZones.get(i).size(); l++) {
         valAdvers += tabZones.get(i).get(l).evaluer();
       }
     }
   }
   return valCourant - valAdvers;
 }