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

MATLAB Discussion :

Labyrinthe - syntaxe


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Labyrinthe - syntaxe
    Bonjour,

    Je veux trouver le chemin le plus court de mon labyrinthe parmi deux chemins.
    1011111111
    1000000001
    1011111101
    1010001101
    1010101101
    1010101101
    1010101101
    1000101101
    1111100001
    1111111101
    L'entrée est toujours en 1x2. Initialement la case 2x2 vaut 0
    La sortie est toujours en 10x9. Initialement la case 9x9 vaut 0

    Pour savoir lequel des deux chemins est le plus court,
    je décide de compter le nombre de zéro entre l'entreé et la sortie.

    Je remplace la case 2x2 par un 2

    Je regarde si autour de ce 2 il y a des chemins, cad des zéros.
    Je regarde en haut, en bas, à gauche et à droite.

    Si j'en trouve un, je le remplace par la valeur 2+1

    Ainsi de suite, grâce a une double boucle for, je scanne
    ma matrice et remplace tout les zéros, par (le nombre qui
    précéde + 1)

    Je m'arrête quand la case 9x9 n'est plus nulle

    Mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    function A=labyrinthe(A)
    A(2,2)=2
    while A(9,9)~=O
        for i= 2 : 9
            for j= 2 : 9
                if A(i,j)==1 return;
                    if A(i,j)==0 return;
     
     
                    elseif A(i+1,j)==0 A(i+1,j)=A(i,j)+1;
                    elseif A(i-1,j)==0 A(i-1,j)=A(i,j)+1;
                    elseif A(i,j+1)==0 A(i,j+1)=A(i,j)+1;
                    elseif A(i,j-1)==0 A(i,j-1)=A(i,j)+1;
                    end
                end
     
            end
    Mais il ne marche pas...

    Pouvez-vous me dire pourquoi. Merci infiniment.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je repère un problème de logique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if A(i,j)==1 return;
         if A(i,j)==0 return;
        elseif A(i+1,j)==0 A(i+1,j)=A(i,j)+1;
        elseif A(i-1,j)==0 A(i-1,j)=A(i,j)+1;
        elseif A(i,j+1)==0 A(i,j+1)=A(i,j)+1;
        elseif A(i,j-1)==0 A(i,j-1)=A(i,j)+1;
        end            
    end
    Ces lignes ne seront jamais vérifiées car elles s'exécutent seulement si A(i,j)==1 est vrai, mais si tel est le cas, on termine la fonction avec return.

    Ensuite, while A(9,9)~=0'0' zéro et non pas 'O' Orange.

Discussions similaires

  1. [syntaxe] Gerer les variables dans une requete
    Par rastapopulos dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 15/04/2003, 12h53
  2. Syntaxe requete
    Par Chipolata dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/03/2003, 14h22
  3. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20
  4. Syntaxe TASM <-> MASM
    Par LFC dans le forum Assembleur
    Réponses: 3
    Dernier message: 28/02/2003, 15h56
  5. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33

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