AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 [Javascript] Remplissage par diffusion

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Ancestral
Utilisateur confirmé: Rang *
avatar

Messages : 227

MessageSujet: [Javascript] Remplissage par diffusion   Sam 8 Nov 2014 - 14:07

Bonjour, j'ai un peu avancé dans la programmation de mon démineur mais me voila de nouveaux confronté à un problème.
J'aimerais que lorsque le joueur appuie sur une case vide, toutes les cases vide aux alentours de cette case se dévoilent également. J'ai donc pensé à un Algorithme de remplissage par diffusion. J'ai donc essayé le premier algorithme présenté sur la page wikipedia mais évidemment comme indiqué:
"La formulation récursive précédente, si elle possède l'avantage d'être intuitive par sa formulation, est souvent inemployée en pratique, en particulier dans des environnements d'exécution où la pile d'appel des fonctions est fortement contrainte ou réduite. Il convient alors de créer sa propre pile dans laquelle seront stockés les pixels à explorer. L'algorithme pour la variante 4-connexe est alors le suivant :"
Code:
remplissage4(pixel, colcible, colrep)
 début
   Soit P une pile vide
   si couleur(pixel) ≠ colcible alors sortir finsi
   Empiler pixel sur P
   Tant que P non vide
   faire
     Dépiler n de P
     couleur(n) ← colrep
     si couleur(n nord) = colcible alors Empiler n nord sur P finsi
     si couleur(n sud)  = colcible alors Empiler n sud  sur P finsi
     si couleur(n est)  = colcible alors Empiler n est  sur P finsi
     si couleur(n ouest)= colcible alors Empiler n ouest sur P finsi
   fintantque
 fin
Je me suis donc tenté à la rédaction de ce 2nd algorithme en javascript mais j'ai un peu de mal à le comprendre. Quelqu'un pourrait-il m'expliquer ce système de pile pour m'aider à transcrire cette algorithme?(faut-il utiliser un tableau dans lequel on empilerait des variables??). J'avoue être un peu perdu
Revenir en haut Aller en bas
Asu
Utilisateur confirmé: Rang ****
avatar

Messages : 895

MessageSujet: Re: [Javascript] Remplissage par diffusion   Sam 8 Nov 2014 - 15:06

Une pile c'est un stack.
C'est à dire que quand tu ajoute une valeur, il se trouve en haut de la pile.
Quand tu lis une valeur, ça te lira la valeur tout en haut du stack - La dernière insérée.
Perso, j'utilise la récursivité dans ce cas (Plus simple) mais sous GM par ex il y a une récursivité max, ensuite le programme plante.

_________________
‎<‎Cysteine‎>‎ nON mais la touche maj s'active/se désactive toute seule
‎<‎Cysteine‎>‎ et a du mal à réponDRE QUANd j'appuie dessus
‎<‎Cysteine‎>‎ et je l'ai démont2? IL Ny a rien DEDANs
Revenir en haut Aller en bas
Ancestral
Utilisateur confirmé: Rang *
avatar

Messages : 227

MessageSujet: Re: [Javascript] Remplissage par diffusion   Sam 8 Nov 2014 - 15:24

Merci pour ta réponse, oui en effet j'ai dabbord essayé d'utiliser la récursivité mais le programme plante.
D'où l'interet que je porte a la seconde methode (celle qui consiste a creer soi-même sa pile).
Si j'ai bien compris donc, concretement, la pile (ou stack du coup) peut etre modélisée par un array donc ?

Ah j'oubliais, que représente n dans l'algorithme ci-dessus ?
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: [Javascript] Remplissage par diffusion   Sam 8 Nov 2014 - 15:51

La cellule.

Si ça t’intéresse, j'avais fait un démineur y a un moment sous GM:
http://host-a.net/u/onilink_/demineur1script.gm6
http://host-a.net/u/onilink_/Demineurs2d3d4d_engines.rar

_________________
                 
Revenir en haut Aller en bas
En ligne
Ancestral
Utilisateur confirmé: Rang *
avatar

Messages : 227

MessageSujet: Re: [Javascript] Remplissage par diffusion   Sam 8 Nov 2014 - 16:02

Merci, pour vos reponses je commence à entrevoir la petite lumier blanche au bout du tunnel.super
Merci aussi pour tes exemples en GML ca m'a l'air deja un peu plus concret. Je vais y jeter un oeil et peut etre essayer de m'en inspirer pour mon projet.
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: [Javascript] Remplissage par diffusion   

Revenir en haut Aller en bas
 
[Javascript] Remplissage par diffusion
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Les Simpson ont été interdit de diffusion au Venezuela.
» DG DIFFUSION - Avis
» Diffusion saison 10
» Diffusion Saison 12
» remplissage d'azote

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Programmation-
Sauter vers: