
Envoyé par
picodev
C'est juste une question de modélisation et de vocabulaire.
Les nœuds de ton graphe seront les cases sols.
Sur ton image, ton graphe possède 2 composantes connexes : l'extérieur et l'intérieur du labyrinthe. L'intérieur du labyrinthe est la composante connexe qui contient les goals (parcours en profondeur à partir d'une case contenant un goal, tous les nœuds visités seront l'intérieur de ton labyrinthe).
Un point d'articulation est un nœud qui si on le retire du graphe scinde le graphe en plusieurs parties indépendantes (= pour aller de l'une à l'autre tu es obligé de passer par ce point d'articulation). Cela correspond à l'entrée d'une pièce (=si on bouche l'entrée tu ne peux plus ni sortir ni entrer dans ta pièce).
Si tu trouves tous les points d'articulation de ton graphe, les nœuds qui n'en sont pas peuvent se regrouper en composantes connexes qui auront la propriété (pour simplifier) que de chaque nœud tu peux atteindre n'importe quel autre nœud par au moins deux chemins différents. Cela signifie que même si tu rajoutes une cloison entre deux cases sols (=retirer l'arrête qui les lie) tu pourra toujours aller d'une à l'autre (=une définition possible d'une pièce). C'est ce qu'on appelle une composante biconnexe. D'ailleurs je me suis trompé sur le dessin, la case où se trouve Mario est une pièce ne faisant pas partie de la pièces des goals.
Partager