public void sauvegarderEnvironnement(String nomDeSauvegarde) {
    File environnements =
        new File(System.getProperty("user.dir") + "/bin/civilisation/ressources/environnements");
    if (!environnements.isDirectory()) environnements.mkdir();

    PrintWriter out;
    try {

      out =
          new PrintWriter(
              new FileWriter(
                  System.getProperty("user.dir")
                      + "/bin/civilisation/ressources/environnements/"
                      + nomDeSauvegarde
                      + Configuration.getExtension()));
      out.println("Nom : " + nomDeSauvegarde);
      out.println("Largeur : " + largeur);
      out.println("Hauteur : " + hauteur);

      for (int i = 0; i < Configuration.civilisations.size(); i++) {
        if (gCarte.getStartingPositions().containsKey(Configuration.civilisations.get(i))) {
          out.println(
              "Civilisation : "
                  + Configuration.civilisations.get(i).getNom()
                  + ","
                  + gCarte.getStartingPositions().get(Configuration.civilisations.get(i)).getX()
                  + ","
                  + gCarte.getStartingPositions().get(Configuration.civilisations.get(i)).getY());
        }
      }

      out.println();
      for (int i = 0; i < Configuration.terrains.size(); i++) {
        out.println("Terrain : " + Configuration.terrains.get(i).getNom());
      }
      for (int i = 0; i < this.getCarte().size(); i++) {
        out.print("Rang : ");
        for (int j = 0; j < this.getCarte().get(i).size(); j++) {
          Terrain t = this.getCarte().get(i).get(j).getTerrain();
          int k = 0;
          while (!t.equals(Configuration.terrains.get(k))) {
            k++;
          }
          out.print(k);
          if (j != this.getCarte().get(i).size() - 1) {
            out.print(",");
          }
        }
        out.println();
      }

      out.close();
    } catch (IOException ex) {
      // TODO Auto-generated catch block
      ex.printStackTrace();
    }
  }
  public PanelEnvironnement(PanelModificationSimulation panel) {
    this.setLayout(null);

    panelPrincipal = panel;
    carte = new ArrayList<ArrayList<PseudoPatch>>();
    redimensionner();
    gCarte = new GCarte(this, espacementHorizontalCarte, espacementVerticalCarte, this);
    gCarte.setLocation(40, 40);
    this.add(gCarte);
  }
  public void generationEnvironnementViaImage(BufferedImage img) {
    largeur = img.getWidth();
    hauteur = img.getHeight();
    redimensionner();

    for (int i = 0; i < hauteur; i++) {
      System.out.println(i / (double) hauteur * 100. + "%");
      for (int j = 0; j < largeur; j++) {
        carte.get(i).get(j).setTerrain(getTerrainSemblable(new Color(img.getRGB(j, i))));
      }
    }

    gCarte.actualiser();
  }
  public void zoom(int z) {
    taillePseudoPatch += z;
    gCarte.actualiser();

    this.revalidate();
  }