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 :

Se déplacer dans un tableau 2x2


Sujet :

Algorithmes et structures de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 28
    Par défaut Se déplacer dans un tableau 2x2
    Bonjour tout le monde !

    Je bloque sur mon algo que je dois coder en C alors je fais appel à vous si vous avez des idées.

    Prenons un exemple de tableau:

    300
    000
    300

    j'aimerais obtenir ce résultat:

    -300
    -300
    -300

    En fait je dois me déplacer de 3 cases pour aller d'un 3 vers un autre 3.
    De même pour les 4, les 5, ...

    Comme par exemple:


    0400
    0000
    0040

    devrait devenir :

    0 -4 0 0
    0 -4 0 0
    0 -4 -4 0

    ou encore:


    0 -4 -4 0
    0 0 -4 0
    0 0 -4 0

    pour faire un chemin de 4 cases.

    Vos propositions de solution sont les bienvenues!

  2. #2
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    As-tu déjà des idées ? As-tu réfléchis à une méthode ?

  3. #3
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 78
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut
    Si j'ai bien compris ton problème général est de trouver un (ou plusieurs) chemins allant de la case
    C1(i1,j1) à la case C2(i2,j2).
    C'est ça ?
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 28
    Par défaut
    Effectivement, mon problème est de choisir tous les chemins possibles sans qu'ils ne se coupent.


    ex:

    4 0 0 0
    3 0 3 0

    ne pourra être que:

    -4 -4 -4 -4
    -3 -3 -3 0

    et non:

    -4 -4 -4 0
    -3 -3 -4 0

    car je n'ai pas un chemin de 3 cases pour le numéro 3.

    Et je ne vois pas bien comment faire.

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Juste pour savoir, a quoi il doit servir cet algo bizarre ? c'est pour un jeu ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 28
    Par défaut
    Oui c'est pour un jeu.
    En fait, après je compte donner une couleur à chaque chemin pour faire apparaitre un dessin.

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par holdboy Voir le message
    Oui c'est pour un jeu.
    En fait, après je compte donner une couleur à chaque chemin pour faire apparaitre un dessin.
    Si tu nous expliquais le principe de ton jeu, on pourrait peut-être te trouver une solution plus appropriée...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 28
    Par défaut
    Le principe du jeu est identique à celui du Picross. Je ne sais pas si vous le connaissez alors je mets le lien vers wikipédia :
    http://fr.wikipedia.org/wiki/Picross

    Il faut noircir les chemins allant d'un chiffre X vers un autre X où chaque chemin sera de la longueur de X (comme les exemple que j'ai posté au-dessus).

    Une contrainte est de ne pas couper un chemin déjà effectué !

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par holdboy Voir le message
    Le principe du jeu est identique à celui du Picross. Je ne sais pas si vous le connaissez alors je mets le lien vers wikipédia :
    http://fr.wikipedia.org/wiki/Picross

    Il faut noircir les chemins allant d'un chiffre X vers un autre X où chaque chemin sera de la longueur de X (comme les exemple que j'ai posté au-dessus).
    Visiblement le lien de wikipedia et ton explication ne parlent pas de la même chose.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 28
    Par défaut
    bon alors ne tenez pas compte du lien de Wikipédia.
    je voudrais simplement remplacer les chiffres X de même valeur par la valeur opposé -X à condition qu'il y ait des chemins de taille X entre ces deux chiffres.

  11. #11
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par holdboy Voir le message
    bon alors ne tenez pas compte du lien de Wikipédia.
    je voudrais simplement remplacer les chiffres X de même valeur par la valeur opposé -X à condition qu'il y ait des chemins de taille X entre ces deux chiffres.
    Méthode brutale:

    - Pour chaque chiffre "X" de la grille, tu evalues la distance manhattan des cases dans le voisinage de rayon X, en tenant compte des cases déjà occupées. Cette distance peut être calculée en utilisant les masques de chamfer (voir dans la rubrique "contribuer"). Les cases du voisinage ayant une valeur de distance de "X" sont les points d'arrivés. Ensuite tu trace le chemin jusqu'au point de départ en utilisant un algo glouton.


    Méthode un peu moins brutale:

    - Précalculer tous les "chemins" de taille "X" possibles (= pour chaque valeur distincte de X dans ta grille).

    - Pour chaque chiffre "X" de la grille, tu testes chaque chemin de taille "X". Si le point d'arrivé du chemin est également une case "X", ton chemin est un candidat possible. Il reste a parcourir le chemin pour voir si aucune case n'est occupée.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. [XL-2003] macro simple pour déplacer des lignes dans un tableau
    Par akka01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/08/2010, 16h24
  2. Fonction pour se déplacer dans un tableau 2D ?
    Par guipe dans le forum Collection et Stream
    Réponses: 72
    Dernier message: 16/12/2009, 11h23
  3. Se déplacer dans un tableau
    Par Linu6 dans le forum Langage
    Réponses: 3
    Dernier message: 08/04/2009, 10h43
  4. Se déplacer dans un tableau
    Par holdboy dans le forum C
    Réponses: 8
    Dernier message: 02/12/2008, 15h07
  5. Déplacer champs dans un tableau
    Par blacksnake dans le forum Langage
    Réponses: 2
    Dernier message: 01/05/2007, 16h46

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