Exemple 2 : Blob
blob.cpp
— 1.6 KB
Contenu du fichier
#include <iostream> using namespace std; #define MAX_Y 8 #define MAX_X 8 int main() { int cpt,x,y; int grille[MAX_X][MAX_Y] = { 1,1,0,0,0,1,1,1, 1,1,0,0,0,0,0,1, 1,0,0,1,0,0,0,1, 1,0,0,1,1,0,0,0, 1,0,1,1,1,1,0,0, 1,0,0,1,1,0,0,0, 1,0,0,1,0,0,1,1, 1,1,0,0,0,1,0,1 }; int fig_cpt (int, int, int [MAX_X] [MAX_Y]); cout << "Voici la grille." <<endl << endl; for (int i=0; i< MAX_X; i++) { cout << " " ; for (int j=0; j< MAX_Y; j++) cout << grille[i][j] << " " ; cout << endl; } cout << endl << endl ; cout << "Entrer les coordonnees en X et en Y : "; cin >> x >> y; cpt = fig_cpt (x, y, grille); cout << "Le nombre de cellule dans la figure est "; cout << cpt << endl << endl; } int fig_cpt(int x, int y, int grille[MAX_X][MAX_Y]) { int compte; if (x<0 || (x > MAX_X -1) || y < 0 || (y > MAX_Y -1)) compte = 0; else if (grille[x][y] == 0) compte = 0; else { grille[x][y] = 0; compte = 1 + fig_cpt(x-1, y, grille) + fig_cpt(x-1, y+1, grille) + fig_cpt(x-1, y-1, grille) + fig_cpt(x, y+1, grille) + fig_cpt(x, y-1, grille) + fig_cpt(x+1, y+1, grille) + fig_cpt(x+1, y, grille) + fig_cpt(x+1, y-1, grille) ; } return compte; }