blob.py
blob.py — 1.8 KB
Contenu du fichier
''' ********************************************************************** Fichier blob.py Programme qui calcule le nombre de case d'une figure Entree : (clavier) les coordonnées de départ dans la grille auteur gabriel girard date 2017 ********************************************************************** ''' import numpy as np MAX_Y = 8 MAX_X = 8 # # Fontion récursive calculant le nombre de cases dans une figure # # Entree : # (parametre) la grille # (parametre) la valeur en x du point de départ # (parametre) la valeur en y du point de départ # Sortie : Le nombre de cases dans la figure # def blob(grille, x, y): # fin de la grille if x<0 or (x > MAX_X -1) or y < 0 or (y > MAX_Y -1): compte = 0 # c'est une case marquée ou externe à la figure elif grille[x][y] == 0 : compte = 0 # Une case de plus dans la figure .. on avance.. else : grille[x][y] = 0 compte = 1 + blob(grille, x-1, y) + \ blob(grille, x-1, y+1) + \ blob(grille, x-1, y-1) + \ blob(grille, x, y+1) + \ blob(grille, x, y-1) + \ blob(grille, x+1, y+1) + \ blob(grille, x+1, y) + \ blob(grille, x+1, y-1) return compte # # Initialisation de la grille grille = np.array([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]) grille = grille.reshape((MAX_X, MAX_Y)) print(grille) # On lit le point de départ x, y = map(int, input("x , y =").split(",")) # On calcule le nombre de cases dans la figure cpt = blob(grille, x, y); print("Pts ds figure =", cpt)