[Résolu] Problème d'algo de remplissage - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Résolu] Problème d'algo de remplissage (/showthread.php?tid=5361) |
[Résolu] Problème d'algo de remplissage - popayan - 18-04-2011 Bonjour à tous, Voici un petit problème auquel je suis confronté, j'ai une solution pour le moment mais elle est vraiment bancalle et très moche :malade: Entrée de l'algo : une table à 2 dimensions remplies de la façon suivante: Code : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 En regardant bien, on peut voir une forme dessinée avec des 1 dans ce tableau de 0. La forme est obligatoirement fermée. Sortie de l'algo : le même tableau mais avec tous les 0 qui sont dans la forme remplacées par des 2. Je donnerais mon algo après avoir eu quelques idées histoire de pas trop influencer. Donc si vous avez des idées de comment faire ca proprement, je suis preneur RE: Problème d'algo de remplissage - Myrina - 18-04-2011 Il n'est pas nécessaire de réinventer la roue; après avoir trouvé un point de départ contenu à l'intérieur de ta figure, il suffit d'utiliser l'algorithme de la fonction fill : http://en.wikipedia.org/wiki/Flood_fill. PS: c'est aussi le même algorithme à utiliser dans le démineur pour dévoiler l'ensemble des cases avec zéro mine aux alentour RE: Problème d'algo de remplissage - Sephi-Chan - 18-04-2011 Par contre, ça implique de lancer l'algo en utilisant une case à l'intérieur du tracé. RE: Problème d'algo de remplissage - niahoo - 18-04-2011 j'ai déjà donné sur ce forum du code php qui prend en entrée une map comme ça et qui donne en retour l'ensemble des zones enfermées, regroupées par tache. Tu devrais facilement pouvoir l'adapter et l'optimiser. Tu saura par avance que tu n'as qu'une tache. RE: Problème d'algo de remplissage - popayan - 18-04-2011 Merci Myrina! Je vais regarder de ce coté mais c'est exactement ce que je cherchais (du coup pas assez :p) Pour partir de l'intérieur, je n'aurais pas de soucis puisque c'est moi qui dessine la forme et que ces contours sont "bornés". ca marche nickel! un petit rendu de test: |