on peut choisir le nombre de ligne et colonne mais il y a un problème de dimension de l'image, le compteur a été ajouter , mais on peut toujours pas controler avec la souris
This commit is contained in:
@@ -1,35 +1,35 @@
|
||||
#include "partie.h"
|
||||
/* On inclut stdio au cas où */
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include <graph.h>
|
||||
|
||||
|
||||
void initialiser_plateau(int grille[NB_LIGNES][NB_COLS]){
|
||||
void initialiser_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne){
|
||||
int i, j;
|
||||
int compteur = 1;
|
||||
|
||||
for (i = 0; i < NB_LIGNES; i++){
|
||||
for(j = 0; j < NB_COLS; j++){
|
||||
grille[0][0]=0;
|
||||
|
||||
for (i = 0; i < nb_ligne; i++){
|
||||
for(j = 0; j < nb_colonne; j++){
|
||||
/*On saute la 1er case*/
|
||||
if (i == 0 && j== 0)continue;
|
||||
grille[i][j] = compteur;
|
||||
compteur++;
|
||||
}
|
||||
}
|
||||
/*On laisse la dernière case du tableu vide pour le taquin*/
|
||||
grille[NB_LIGNES - 1 ][NB_COLS - 1] = 0;
|
||||
}
|
||||
|
||||
void deplacer(int grille[NB_LIGNES][NB_COLS], int touche) {
|
||||
void deplacer(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne,int touche) {
|
||||
int i, j;
|
||||
int vide_i, vide_j;
|
||||
int vide_i = -1, vide_j = -1;
|
||||
int cible_i, cible_j;
|
||||
int temp;
|
||||
|
||||
/* Trouver la case vide */
|
||||
vide_i = -1;
|
||||
for(i = 0; i < NB_LIGNES; i++) {
|
||||
for(j = 0; j< NB_COLS; j++) {
|
||||
for(i = 0; i < nb_ligne; i++) {
|
||||
for(j = 0; j< nb_colonne; j++) {
|
||||
if (grille[i][j] == 0) {
|
||||
/*vide i/j est l'adresse du trou*/
|
||||
vide_i = i;
|
||||
@@ -49,8 +49,8 @@ if(touche == XK_Up) cible_i = vide_i - 1;
|
||||
if(touche == XK_Down) cible_i = vide_i + 1;
|
||||
|
||||
/* Vérifier les bords */
|
||||
if (cible_i < 0 || cible_i >= NB_LIGNES ||
|
||||
cible_j < 0 || cible_j >= NB_COLS) {
|
||||
if (cible_i < 0 || cible_i >= nb_ligne ||
|
||||
cible_j < 0 || cible_j >= nb_colonne) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ grille[cible_i][cible_j] = 0;
|
||||
grille[vide_i][vide_j] = temp;
|
||||
}
|
||||
|
||||
void melanger_plateau(int grille[NB_LIGNES][NB_COLS]) {
|
||||
void melanger_plateau(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne) {
|
||||
int i;
|
||||
int touche_aleatoire;
|
||||
int direction;
|
||||
@@ -76,28 +76,21 @@ void melanger_plateau(int grille[NB_LIGNES][NB_COLS]) {
|
||||
else if (direction == 1)touche_aleatoire = XK_Up;
|
||||
else if (direction == 2)touche_aleatoire = XK_Right;
|
||||
else touche_aleatoire = XK_Down;
|
||||
deplacer(grille, touche_aleatoire);
|
||||
deplacer(grille,nb_ligne,nb_colonne,touche_aleatoire);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int verifier_victoire(int grille[NB_LIGNES][NB_COLS]){
|
||||
int verifier_victoire(int grille[MAX_TAILLE][MAX_TAILLE],int nb_ligne,int nb_colonne){
|
||||
int i,j,compteur = 1;
|
||||
for(i = 0; i < NB_LIGNES; i++) {
|
||||
for(j = 0; j< NB_COLS; j++) {
|
||||
/*La dernière case en bas a droite doit être vide */
|
||||
if (i == NB_LIGNES - 1 && j == NB_COLS - 1){
|
||||
if(grille[i][j] != 0){
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
/*les autres cases doivent être dans l'orde*/
|
||||
if(grille[i][j] != compteur){
|
||||
return 0;
|
||||
}
|
||||
compteur++;
|
||||
}
|
||||
if(grille[0][0]!= 0)return 0;
|
||||
|
||||
for(i = 0; i < nb_ligne; i++) {
|
||||
for(j = 0; j< nb_colonne; j++) {
|
||||
if (i == 0 && j == 0)continue;
|
||||
|
||||
if(grille[i][j] != compteur)return 0;
|
||||
compteur++;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user