1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2018
    Messages : 4
    Points : 0
    Points
    0

    Par défaut Propagation de valeur en 4-connexité

    Bonjour à tous,
    je suis étudiant en première année de licence info et j'ai un projet à rendre.
    Je dois créer un jeu où le but est de s'enfuir d'un labyrinthe créer aléatoirement.
    Après deux jours d'essai, je n'ai pas réussi a créer moi même le labyrinthe. J'ai donc recherché sur internet et j'ai trouvé un superbe algorithme:

    1. Initialisation :
    — Une matrice L[N][M] donnée ;
    —k←0 ;
    — Pour i de 0 à N faire :
    — Pour j de 0 à M faire :
    — Si (i impair et j impair) alors :
    —L[i][j]←k;
    —k=k+ 1 ;
    — Sinon :
    —L[i][j]←-1 ;
    — FIN “Si” ;
    — FIN “Pour” ;
    — FIN “Pour” ;
    2. Pour NbCasesAZero, le nombre de cases `a 0 :
    NbCasesAZero= 1 ;
    3. Tant que NbCasesAZero < N×M faire :
    — Prendre au hasard (x, y) tel que :
    L[x][y] =−1 et (x impair ou y impair) ;
    — Si x impair alors :
    — d←L[x][y−1]−L[x][y+ 1] ;
    — Si d >0 alors :
    —L[x][y]←L[x][y+ 1] ;
    — Propager la valeur L[x][y+1] à partir du point (x, y−1) (en 4-connexité) pour les cases contenant la valeur L[x][y−1];
    — Sinon, si d <0 alors :
    — L[x][y]←L[x][y−1] ;
    — Propager la valeur L[x][y-1] à partir du point (x, y+1) (en 4-connexité) pour les cases contenant la valeur L[x][y+1];
    — Sinon (y impair) :
    — d←L[x−1][y]−L[x+ 1][y] ;
    — Si d >0 alors :
    —L[x][y]←L[x+ 1][y] ;
    — Propager la valeur L[x+1][y] à partir du point (x-1, y) (en 4-connexité) pour les cases contenant la valeur L[x-1][y];
    — Sinon, si d <0 alors :
    — L[x][y]←L[x−1][y] ;
    — Propager la valeur L[x-1][y] à partir du point (x+1, y) (en 4-connexité) pour les cases contenant la valeur L[x+1][y];
    4. FIN “Tant que”.


    Mais je n'ai absolument aucunes idées de ce que veux dire:
    - "Propager la valeur L[x][y+1] à partir du point (x, y−1) (en 4-connexité) pour les cases contenant la valeur L[x][y−1];"
    Et je n'ai rien trouvé sur internet. Si quelqu'un pourrait m'expliquer ce qu'il faut faire!
    Merci d'avance

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2018
    Messages : 4
    Points : 0
    Points
    0

    Par défaut Désolé

    Désolé pour l'indentation, j'avais essayé de mettre des espaces, mais visiblement le site ne les a pas pris en compte...

  3. #3
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 2 910
    Points : 6 835
    Points
    6 835

    Par défaut

    Bonjour



    Je croyais que faire une recherche Google était à la portée d'un élève de licence.
    D'autant plus que la n-connexité est une entrée de wikipédia.

    Le changement de valeur va faire tâche d'huile. Auprès des voisins. A partir de la case à l'opposé de la case courante.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
    Votre problème est résolu ? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2018
    Messages : 4
    Points : 0
    Points
    0

    Par défaut

    Merci de m'avoir, répondu, mais pas la peine d'être offensant. Pensez bien, que si j'avais compris ce que disais la page Wikipédia sur les n-connexité, je ne serais pas en train de poser la question. Cette notion n'est absolument pas de mon niveau.
    De plus je n'ai absolument pas compris votre conseil. Que veux dire "va faire tâche d'huile"?
    Et qu'appelez vous " la case opposé de la case courante"?

  5. #5
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 2 910
    Points : 6 835
    Points
    6 835

    Par défaut

    Qu'est-ce que la 4-connexité ?
    n-connexité avec n=4
    Qu'est-ce que la n-connexité ?
    "la n-connexité est une généralisation de la connexité par arcs"
    Qu'est-ce que la connexité par arcs ? (en plus, il y a un lien hypertexte)
    "(...) est dit connexe par arcs si deux points quelconques peuvent toujours être reliés par un chemin."

    La 4-connexité est une façon snob de désigner 4 voisins.
    C'est ça qui est hors de portée d'un étudiant en licence ? Faut pas pousser.


    Et qu'appelez vous " la case opposé de la case courante"?
    La case courante est évidemment celle de coordonnées (x,y).
    Le code parle de L[x][y+ 1] donc de la case de coordonnées (x,y+1); celle du dessous, manifestement.
    La case à l'opposé est donc celle du dessus (x,y-1) dans laquelle il faut propager la valeur de la case en (x,y+1), pour (x,y-1) et tous ces voisins ayant la même valeur.


    Sur Wikipedia, comme dans le code, il suffit de lire.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
    Votre problème est résolu ? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 18
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2018
    Messages : 4
    Points : 0
    Points
    0

    Par défaut

    Merci bien pour ton aide, au final j'ai trouvé un autre moyen de générer aléatoirement le labyrinthe...

  7. #7
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 2 910
    Points : 6 835
    Points
    6 835

    Par défaut

    Bonne nouvelle. Veux-tu partager cette solution ici ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
    Votre problème est résolu ? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++

Discussions similaires

  1. récupérer la valeur du 2ème champ dans un DBLookUpListBox
    Par jakouz dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/07/2004, 16h45
  2. Recherche fonctions rendant la valeur
    Par Bertrand_Collet dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/11/2002, 12h05
  3. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  4. [XSLT]position d'un element de valeur specifique
    Par squat dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/07/2002, 16h42
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

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