compteur de coups fonctionnel

This commit is contained in:
2025-12-04 22:43:36 +01:00
parent 20ec920174
commit a3ae70648b
4 changed files with 19 additions and 13 deletions
+5 -3
View File
@@ -152,19 +152,21 @@ int main(void){
touche = Touche(); touche = Touche();
/* Pour quitter on clique sur q */ /* Pour quitter on clique sur q */
if (touche == XK_q || touche == XK_Q) break; if (touche == XK_q || touche == XK_Q) {
FermerGraphique();
}
/* Déplacement +on affiche la nouvelle grille */ /* Déplacement +on affiche la nouvelle grille */
deplacer(grille,ligne,colonne,touche); if (deplacer(grille,ligne,colonne,touche) == 1) {
coups++; coups++;
afficher_plateau(grille,ligne,colonne,coups); afficher_plateau(grille,ligne,colonne,coups);
/*On vérifie si on a gagner */ /*On vérifie si on a gagner */
if(verifier_victoire(grille,ligne,colonne) == 1 ){ if(verifier_victoire(grille,ligne,colonne) == 1 ){
jeu_fini = 1; jeu_fini = 1;
} }
}
} }
} }
if (jeu_fini == 1){ if (jeu_fini == 1){
+12 -8
View File
@@ -9,7 +9,7 @@ void initialiser_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_
int i, j; int i, j;
int compteur = 1; int compteur = 1;
grille[0][0]=0; grille[0][0] = 0;
for (i = 0; i < nb_ligne; i++){ for (i = 0; i < nb_ligne; i++){
for(j = 0; j < nb_colonne; j++){ for(j = 0; j < nb_colonne; j++){
@@ -21,7 +21,7 @@ void initialiser_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_
} }
} }
void deplacer(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne,int touche) { int deplacer(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne,int touche) {
int i, j; int i, j;
int vide_i = -1, vide_j = -1; int vide_i = -1, vide_j = -1;
int cible_i, cible_j; int cible_i, cible_j;
@@ -44,20 +44,23 @@ cible_j = vide_j;
/* Calculer la cible */ /* Calculer la cible */
if(touche == XK_Left) cible_j = vide_j - 1; if(touche == XK_Left) cible_j = vide_j - 1;
if(touche == XK_Right) cible_j = vide_j + 1; else if(touche == XK_Right) cible_j = vide_j + 1;
if(touche == XK_Up) cible_i = vide_i - 1; else if(touche == XK_Up) cible_i = vide_i - 1;
if(touche == XK_Down) cible_i = vide_i + 1; else if(touche == XK_Down) cible_i = vide_i + 1;
else {
return 0;
}
/* Vérifier les bords */ /* Vérifier les bords */
if (cible_i < 0 || cible_i >= nb_ligne || if (cible_i < 0 || cible_i >= nb_ligne ||
cible_j < 0 || cible_j >= nb_colonne) { cible_j < 0 || cible_j >= nb_colonne) {
return; return 0;
} }
/* Echanger */ /* Echanger */
temp = grille[cible_i][cible_j]; temp = grille[cible_i][cible_j];
grille[cible_i][cible_j] = 0; grille[cible_i][cible_j] = 0;
grille[vide_i][vide_j] = temp; grille[vide_i][vide_j] = temp;
return 1;
} }
void melanger_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne) { void melanger_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne) {
@@ -83,7 +86,8 @@ void melanger_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_col
int verifier_victoire(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne){ int verifier_victoire(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne){
int i,j,compteur = 1; int i,j,compteur = 1;
if(grille[0][0]!= 0)return 0;
if(grille[0][0] != 0)return 0;
for(i = 0; i < nb_ligne; i++) { for(i = 0; i < nb_ligne; i++) {
for(j = 0; j< nb_colonne; j++) { for(j = 0; j< nb_colonne; j++) {
+1 -1
View File
@@ -4,7 +4,7 @@
#include "config.h" #include "config.h"
void initialiser_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne); void initialiser_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne);
void deplacer(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne, int touche); int deplacer(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne, int touche);
void deplacer_souris(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne,int clic_x,int clic_y); void deplacer_souris(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne,int clic_x,int clic_y);
void melanger_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne); void melanger_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne);
BIN
View File
Binary file not shown.