IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Démineur: détection des cases vides


Sujet :

Algorithmes et structures de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Démineur: détection des cases vides
    Bonjour,

    je dois comme projet créer un démineur sous Matlab. J'ai déjà fais l'essentiel, à savoir que je peux y jouer mais il y a juste un truc que je ne parviens pas à faire. Dans le vrai demineur, quand on clique sur une case qui n'a aucune mines autour d'elle, il y a un genre de deblayage qui supprime toutes les cases vides à proximite en se propageant et ne laissant qu'un espace du plateau dont les bords indiquent les mines à proximités. Moi, je ne parviens qu'a supprimer les cases qui sont autour de ma case jouée; la propagation ne marche pas.

    Je voulais créer une boucle while qui teste les cases et qui s'arrete quand le nombre de mines aux alentours est >0. Le probleme c'est les changements de directions: est ce qu'il faut revenir à la case jouée ou bien virer de bord?

    Est ce que donc quelqu'un aurait un indice ou une astuce (Pas la réponse!!!) à me donner?

    Je remercie d'avance ceux qui prendront de leur temps pour m'aider^^

    A bientot

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    S'il vous plait un coup de main!!

    j'ai arpenté google de long en large et en travers sans succès!
    Si qqn connait un site traitant de la methode à employer je suis preneur!!

    Merci d'avance

  3. #3
    Membre averti

    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 352
    Points
    352
    Par défaut
    qqch du genre peut-etre?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function supprimerCase(i,j,tableau)
     
    if tableau(i,j) == 'case_vide' % la case est vide
        tableau(i,j) = 'case_supprimee'; % marquer la case comme 'supprimee'
        % appliquer sur les voisins
        supprimerCase(i+1, j);
        supprimerCase(i, j+1);
        supprimerCase(i-1, j);
        supprimerCase(i, j-1);
    end
    il faut prendre en compte les cas en bord du tableau aussi (le plus simple serait de 'padder' de chaque cote avec des cases supprimees).

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    en fait je crée un sous programme qui s'occupe de supprimer les cases alentours tandis qu'un autre s'occupe des cases à étudier?

    Merci en tout cas pour votre aide

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    La méthode des cases supprimées sur les bords me semble interessante si ce n'est qu'il faudra faire attention à ne pas essayer de lancer la fonction supprimer sur ces cases.

    Je pense aussi que la fonction recursive est la plus simple à mettre en oeuvre pour cette application, par contre, je crois bien qu'elle prend toute les directions (la 8 connexité), il faudrait donc mettre les 8 appels et non pas 4. (en tout cas dans le démineur windows)

    Ensuite, il faut regarder si ce ne serait pas plus simple d'introduire le test de la case vide ( ou supprimée) avant l'appel de la fonction, ce qui éviterai surtout des appels de la fonction inutile ainsi que les problèmes de bords cités plus hauts.

  6. #6
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par Angerbode Voir le message
    S'il vous plait un coup de main!!
    regarde du coté des parcours de graphe, en profondeur ou en largueur, au choix.

    bonne recherche

Discussions similaires

  1. [Débutant] Importer fichier texte avec des cases vides
    Par doublegadobax dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/05/2011, 17h05
  2. Table contenant des cases vides
    Par PicuiPicui dans le forum Requêtes
    Réponses: 1
    Dernier message: 08/02/2010, 11h03
  3. [Toutes versions] supprimer des cases vides dans une colonne
    Par vivi4561 dans le forum Excel
    Réponses: 2
    Dernier message: 09/09/2009, 23h14
  4. détection des cellules vides ou contenant un blanc
    Par thierry_b dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/06/2009, 13h17
  5. traitement des cases vides
    Par anasleco dans le forum Excel
    Réponses: 4
    Dernier message: 11/09/2008, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo