suppression de la constante TAILLE_CASE pour que lecran sadapte a limage directement pour pas faire de probleme de dimension en ajoutant des variable de types int img_w et image_h ainsi que hauteur_image et largeur_img qui sont representer par l_case et h_case (je l'ai appeler img_w car ça peut porter a confusion en francais vu quil y a longueu et largeur donc jai choisi w pour width et pas img_l). Ainsi quune correction dans affichage.c : j'ai retire -1 dans les lignes avec src_x et src_y car sinon il y a un decalage donc comme ca le num 1 correspond bien au morceau dimage 1
This commit is contained in:
+13
-12
@@ -4,11 +4,11 @@
|
||||
#include "config.h"
|
||||
|
||||
|
||||
void init_affichage(int nb_ligne,int nb_colonne){
|
||||
void init_affichage(int largeur_img, int hauteur_img){
|
||||
|
||||
InitialiserGraphique();
|
||||
/*La fenetre vass faire la taille de la grille*/
|
||||
CreerFenetre(100, 100, nb_colonne * TAILLE_CASE, (nb_ligne * TAILLE_CASE)+60);
|
||||
CreerFenetre(100, 100, largeur_img, hauteur_img + 60);
|
||||
}
|
||||
|
||||
void charger_image_source(char *nom_fichier) {
|
||||
@@ -22,7 +22,7 @@ void charger_image_source(char *nom_fichier) {
|
||||
ChoisirEcran(0);
|
||||
}
|
||||
|
||||
void afficher_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne,int coups){
|
||||
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;
|
||||
@@ -33,32 +33,33 @@ void afficher_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_col
|
||||
/*Compteur de coups*/
|
||||
ChoisirCouleurDessin(CouleurParNom("white"));
|
||||
sprintf(text_coups,"Coups : %d",coups);
|
||||
/*Comme la taille de l'écran chage y n'est pas fixe*/
|
||||
EcrireTexte(10,nb_ligne*TAILLE_CASE + 40, text_coups,2);
|
||||
/* 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];
|
||||
x = j * TAILLE_CASE;
|
||||
y = i * TAILLE_CASE;
|
||||
/* 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, TAILLE_CASE, TAILLE_CASE);
|
||||
RemplirRectangle(x, y, l_case, h_case);
|
||||
continue;
|
||||
}
|
||||
|
||||
src_x = ((num - 1) % nb_colonne) * TAILLE_CASE;
|
||||
src_y = ((num - 1) / nb_colonne) * TAILLE_CASE;
|
||||
src_x = (num % nb_colonne) * l_case;
|
||||
src_y = (num / nb_colonne) * h_case;
|
||||
|
||||
CopierZone(1, 0, src_x, src_y, TAILLE_CASE, TAILLE_CASE, x, y);
|
||||
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, TAILLE_CASE, TAILLE_CASE);
|
||||
DessinerRectangle(x, y, l_case, h_case);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user