10-11-2010, 07:14 PM
C'est assez facile a faire en exploitant la récursivité, en partant d'une bille une fonction parcourt les 4 voisins de cette bille.
4 possibilités :
Le voisin est une case vide => false;
Le voisin est une bille de la couleur opposée => true;
Le voisin est en dehors de la zone => true; (pour gérer les bords)
Le voisin est un bille de la même couleur => tu relance ta fonction récursive, et tu considère le résultat qu'elle te renvoie.
Ta fonction renvoie le ET des résultats pour les 4 voisines.
Si c'est true, elle réponds bien à tes conditions, si c'est false ce n'est pas le cas.
Si tu veux toutes les billes qui répondent aux conditions, il faut en plus marquer les billes de même couleur qui ont été explorées.
Si tu veux un exemple d'implémentation, donne un exemple exploitable de données.
4 possibilités :
Le voisin est une case vide => false;
Le voisin est une bille de la couleur opposée => true;
Le voisin est en dehors de la zone => true; (pour gérer les bords)
Le voisin est un bille de la même couleur => tu relance ta fonction récursive, et tu considère le résultat qu'elle te renvoie.
Ta fonction renvoie le ET des résultats pour les 4 voisines.
Si c'est true, elle réponds bien à tes conditions, si c'est false ce n'est pas le cas.
Si tu veux toutes les billes qui répondent aux conditions, il faut en plus marquer les billes de même couleur qui ont été explorées.
Si tu veux un exemple d'implémentation, donne un exemple exploitable de données.