示例#1
0
  public void construire(Joueur j) {

    ArrayList<Groupe> groupes = j.getGroupes();

    if (!groupes.isEmpty()) {

      this.getMonopoly().getIHM().afficheP();

      boolean peutConstruire = false;

      for (Groupe g : groupes) {

        int min = g.getMinNbM(); // le minimum des maisons sur les propriétés appartenant au groupe

        ArrayList<ProprieteAConstruire> collectP =
            g.getProprietes(); // toutes les propriétes du groupe

        // Pour chaque propriété on vérifie qu'elle a un nombre min de maison par rapport aux autres
        // et que ça doit pas dépasser 4

        for (ProprieteAConstruire p : collectP) {

          int nbM = p.getNbmaison();

          if (nbM < 5 && nbM == min && !p.getHotel()) {

            // Affichage de toutes les propriétés où le jour a la possibilité de construire

            this.getMonopoly().getIHM().afficheConstruire(p);
            peutConstruire = true;
          }

          // else {

          //   this.getMonopoly().getIHM().affichePeutPasConstruire();
        }
      }

      if (peutConstruire) {

        // Choix du joueur
        Boolean mauvaiseSaisie = true;
        while (mauvaiseSaisie) {
          int numC = this.getMonopoly().getIHM().getConstruireRep();

          // Return le carreau avec le numC pour incrémenter le nbmaison ...

          Carreau c = this.getMonopoly().getCarreaux().get(numC);
          // ProprieteAConstruire p = this.getMonopoly().get

          HashSet<ProprieteAConstruire> collec = j.getProprietes();
          /*Boolean trouve = false;
          int i=0;
          while (!trouve && i<collec.size()) {

          }
          */

          // obligé de faire comme ça car pas de HashMap
          for (ProprieteAConstruire p : collec) {
            if (p.getNumero() == numC) {
              ProprieteAConstruire pc = p;
              Groupe gc = p.getGroupePropriete();
              if (pc.getProprietaire() == j
                  && j.getGroupes().contains(gc)
                  && gc.getMinNbM() == pc.getNbmaison()
                  && !pc.getHotel()
                  && pc.getNbmaison() < 5) {
                mauvaiseSaisie = false;
                int prix = gc.getPrixAchatMaiHot();
                if (j.peutPayer(prix)) {
                  j.payerLoyer(prix);
                  if (pc.getNbmaison() < 4) {
                    pc.setNbmaison(pc.getNbmaison() + 1);
                  } else {
                    pc.setNbmaison(0);
                    pc.setHotel(true);
                  }
                  this.getMonopoly().getIHM().afficheCarteProprieteAC(pc);
                } else {
                  this.getMonopoly().getIHM().affichePeutPasPayer();
                  mauvaiseSaisie = false;
                }
              }
              // else {System.out.println("Mauvaise saisie !"); }
            }
            // else {System.out.println("Mauvaise saisie !"); }
          }

          if (mauvaiseSaisie) {
            System.out.println("Mauvaise saisie !");
          }
        }

      } else this.getMonopoly().getIHM().affichePeutPasConstruire();

    } else this.getMonopoly().getIHM().affichePeutPasConstruire();
  }