test de contenu de cases

natha

XLDnaute Nouveau
Bonjour

Voila je fais un démineur sous excel mais ça fait quelques jours que je bloque sur un petit truc...

Je voudrais que lorsqu'on clique sur une case vide (avec aucune mine autour de la case), toutes les faces vides qui se trouvent à coté soient découvertes et faire la grosse réaction en chaine qui dévoile toute la zone ou il n'y a pas de mines (et qui la plupart du temps entraine une grande satisfaction de la part du joueur :D) .

Pour l'instant le programme dévoile juste les mines autour du clic:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
...
If Range(Target.Address) = "0" Then
ActiveCell.Offset(-1, -1).Range("A1:C3").Interior.ColorIndex = xlNone
End If
...
End Sub

Quand il y a un "0" là ou on clique, on décolore (eau de javel ou autre) les cases autour

Voila si vous avez des idées n'hésitez pas :)
Merci!

Natha
 

tototiti2008

XLDnaute Barbatruc
Re : test de contenu de cases

Bonjour natha,

à part en récursif, je ne vois pas trop...
l'idée :
tu dévoile la cellule si elle ne contient pas de mines
tu fais une fonction qui te renvoie la liste des cellules autour qui sont dans l'aire de jeu
pour chaque cellule de la liste qui ne contient pas de mine, tu la dévoile et tu cherches la liste des cellules autour qui sont dans l'air de jeu

Bref, il va falloir une fonction ou sub qui s'appelle elle-même (récursivité)
 

pierrejean

XLDnaute Barbatruc
Re : test de contenu de cases

bonjour natha

un essai (qui ne fait pas vraiment dans la simplicité mais qui a l'air de fonctionner)

Teste et dis nous

Edit: Salut Tototiti
J'ai testé la recursivité et me suis heurté a des 'pile insuffisante'
 

Pièces jointes

  • Natha.zip
    11.5 KB · Affichages: 37
Dernière édition:

natha

XLDnaute Nouveau
Re : test de contenu de cases

Merci pour vos réponses!

tototiti: Ok pour la récursivité, j'ai compris le principe.
J'ai testé tout comme PJ d'appeler une fonction par elle-même mais en effet ça marche pas ("espace pile insuffisant").

PierreJ : Merci pour ton programme!
J'ai testé, c'est bien ce que je veux!! (a peu de choses près)
Si j'ai bien compris la fonction ne s'appelle pas elle même mais elle est appelée par un signe particulier (lettre "F"), puis trace ces signes pour être appelée plus tard.
Et tu limite ça au 10eme degré.

Ton truc me plait je vais intégrer ça dans mon prog, puis voir après si je peux simplifier.
Chouette chouette chouette :D:D enfin une solution ^^
Je vous tiens au courant ;)
 

Statistiques des forums

Discussions
312 764
Messages
2 091 860
Membres
105 080
dernier inscrit
mellusine83