#include <stdio.h>
#include "affichage.h"
#include <graph.h>
#include "config.h"


void init_affichage(int largeur_img, int hauteur_img){

    InitialiserGraphique();
    /*La fenetre vass faire la taille de la grille*/
    CreerFenetre(100, 100, largeur_img, hauteur_img + 60);
}

void charger_image_source(char *nom_fichier) {
  ChoisirEcran(1);

  EffacerEcran(CouleurParNom("black"));

  /* On charge l'image. On force sa taille pour qu'elle remplisse bien le jeu */
  ChargerImageFond(nom_fichier);

  ChoisirEcran(0);
}

void afficher_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne,int coups, int l_case, int h_case){
  int i,j;
  int x, y;
  int num;
  int src_x, src_y;
  char text_coups[50];
  
  EffacerEcran(CouleurParNom("black"));
  /*Compteur de coups*/
  ChoisirCouleurDessin(CouleurParNom("white"));
  sprintf(text_coups,"Coups : %d",coups);
  /* On place le texte en bas de l'image */
  EcrireTexte(10, nb_ligne*h_case + 40, text_coups, 2);
  

  for (i = 0; i < nb_ligne; i++){
    for(j = 0; j < nb_colonne; j++){
      /*Calcul en pixel de la taille d'une case*/
      num = grille[i][j];
      /* Calcul dynamique de la position */
      x = j * l_case;
      y = i * h_case;
      /*Ici on saute la case vide du taquin*/
      
      if (num == 0) {
	ChoisirCouleurDessin(CouleurParNom("black"));
	RemplirRectangle(x, y, l_case, h_case);
	continue;
      }

      src_x = (num  % nb_colonne) * l_case;
      src_y = (num / nb_colonne) * h_case;

      CopierZone(1, 0, src_x, src_y, l_case, h_case, x, y);
      
      /*ET on ecrit le numéro dans un rectagle*/
      ChoisirCouleurDessin(CouleurParNom("black"));
      DessinerRectangle(x, y, l_case, h_case);	
    }
  }
}

void afficher_miniatures_menu(void) {
  /* Position X des images (à droite du texte) */
  int x_img = 250;
  /* Taille des miniatures (100x100 pxl) */
  int taille = 100;
  /* Miniature pour image 1 (Y=140 environ) a cote du texte 1 */
  ChargerImage("minimage1.png", x_img, 140, 0, 0, taille, taille);
  DessinerRectangle(x_img, 140, taille, taille);
  /* Miniature pour image 2 (Y=260) */
  ChargerImage("minimage2.png", x_img, 260, 0, 0, taille, taille);
  DessinerRectangle(x_img, 260, taille, taille);
  /* Miniature image 3 (Y=380) */
  ChargerImage("minimage3.png", x_img, 380, 0, 0, taille, taille);
  DessinerRectangle(x_img, 380, taille, taille);
}

void fermer_affichage(void){
  FermerGraphique();
}
