NeoDemineur (theme matrix)

Résolu
cs_vega11 Messages postés 39 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 15 juillet 2010 - 26 avril 2006 à 19:28
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 26 avril 2006 à 22:51
Salut à tous !


je suis etudiant en premiere annee bts ig option dev .


Dans le cadre de mes cours on m'a demandé de créer un demineur  (ce que j'ai fait)


je met le lien  membres.lycos.fr/leken11/demineur.zip


je voulais donc avoir votre avis sur le code savoir si vous trouvez ca trop lourd  par ex.


Ma prof n'a pas encore voulu nous expliquer comment on peut faire pour
que le plateau se decouvre tout seul lorsque qu'il n'ya pas de bombes
alentour   (j'espere que vous voyez ce que je veux dire)


Si quelqu'un peut m'expliquer le principe c'est sympa  !


Merci d'avance et bon jeu

3 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
26 avril 2006 à 22:51
Salut,


Il s'agit juste de récursivité. C'est très court à coder. En algorithme, çà donne ceci :

Procedure On_a_clique_sur_une_case(numero_de_la_case)

decouvrir_la_case(numero_de_la_case)

Si le nombre de mine adjacentes est zéro alors

   
On_a_clique_sur_une_case(numero_de_la_case_au_dessus)

    On_a_clique_sur_une_case(numero_de_la_case_a_droite)

   
On_a_clique_sur_une_case(numero_de_la_case_en_dessous)

   
On_a_clique_sur_une_case(numero_de_la_case_e_gauche)


Fin de Si

Fin de procedure




Pour chaque case à découvrir, il faut en plus tester si elle existe
(car quand on approche des bords du tableau de mines, faudrait pas
déborder).


Ainsi, quand tu cliques sur une case sans mine adjacente, ton clic se propage pour découvrir toute une zone de cases libres.


Il y a quelques démineurs qui trainent sur VBFrance, tu peux y jeter un oeil (menu Rechercher)

Manu


<hr size="2" width="100%">
Avant de poster un message, n'oubliez pas de consulter le règlement.
Pensez également à valider les r&#
3
JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
26 avril 2006 à 20:50
Salut!

J'en avais fait un sur TI-83. Le principe, tout se passe dans un tableau. Je place mes mines, je parcours mon tableau case par case et s'il y a une mine, j'incrémente de 1 toutes les valeurs des cases voisines. Ensuite, lorsque tu découvre une case, tu parcours ton tableau de droite à gauche et de bas en haut, puis de gauche à droite et de haut en bas, à partir de la case découverte. Si l'une des cases voisines est découverte et vide (sans mines ni nombre), tu la découvres et tu repars de ta case. C'est très lourd, il y a probablement un autre moyen mais je ne le connais pas.

PS : je vais jeter un oeil à ton code mais si ça me saoule, je ne vais pas insister

Jer
0
cs_vega11 Messages postés 39 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 15 juillet 2010 1
26 avril 2006 à 21:14
Salut et merci oki oui ce moyen la je me doute mais c'est  un peu lourd c'est vrai lol


ya qqchose qui simplifie ca mais au pire je ferai ta methode lol !!!
0
Rejoignez-nous