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

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    décembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : décembre 2017
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Générer un labyrinthe

    Bonjour.
    Je bloques , je ne sais pas pourquoi mon code ne fonctionne pas, le but est de générer la matrice de mon labyrinthe qui est 1-connexe .
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    #include <stdio.h>#include <stdlib.h>
    #include <math.h>
    void initCarte(int carte[][19]){
           int x=0,y=0,d,q=0;
        // on initialisze notre carte
        int nbrecasezero=1; // pour le nombre de cases a zero
        int i, j,k=0;
        for (i=0;i<19;i++){
            for(j=0;j<19;j++){
                if(i%2==1&& j%2==1){
                    carte[i][j]=k;
                    k=k+1;
                }
                else
                    carte[i][j]=-1;
            }
        }
    // on traite cette matrice pour avoir une matrice fotement connexe
        while(nbrecasezero<2){
        for(i=0;i<19;i++){
                for(j=0;j<19;j++){
                        if(((carte[i][j]==-1)&&(i%2==1 || j%2==1))){
                            x=i;
                            y=j;
                            q=1;
                        break;
                        }
     
     
                            }
                            if(q==1){
                                break;
     
     
                            }
                }
       // on choisie aleatoirement un mur vide de la matrice
            if(x%2==1){
                    if(y>0 && y<18){
                d=carte[x][y-1]-carte[x][y+1];
                if(d>0){
                    carte[x][y]=carte[x][y+1];
                    // on propage la valeur carte[x][y+1]
                    for(i=x;i<19;i++){
                    for(j=y-1;j<19;j++){
                        if(carte[i][j]==carte[x][y-1])
                            carte[i][j]=carte[x][y+1];
                }
     
     
                }
            }
            else if(d<0){
                carte[x][y]=carte[x][y-1];
                for(i=x;i<19;i++){
                    for(j=y+1;j<19;j++){
                        if(carte[i][j]==carte[x][y+1])
                            carte[i][j]=carte[x][y-1];
                }
                }
            }
            }
        }
     
     
        else {
                //if (x>0&& x<18){
            d=carte[x-1][y]-carte[x+1][y];
            if(d>0){
                carte[x][y]=carte[x+1][y];
                // on propage la valeur...................
                for(i=x-1;i<19;i++){
                    for(j=y;j<19;j++){
                        if(carte[i][j]==carte[x-1][y])
                            carte[i][j]=carte[x+1][y];
                }
                }
                printf("\n\n bonjour %d %d\n",x,y);
            }
            else if(d<0){
                carte[x][y]=carte[x-1][y];
                for(i=x+1;i<19;i++){
                    for(j=y;j<19;j++){
                        if(carte[i][j]==carte[x+1][y])
                            carte[i][j]=carte[x+1][y];
                }
                }
            }
                //}
        }
        nbrecasezero=0;
        for(i=0;i<19;i++){
            for(j=0;j<19;j++){
                if(carte[i][j]==0){
                nbrecasezero++;
                }
            }
        }
    }
    }
    int main()
    {
     
     
        printf("hello word|\n");
        int carte[19][19];
        initCarte(carte);
        int i,j,x=0,y=0,q=0;
        for(i=x;i<19;i++){
                for(j=y;j<19;j++){
                        if(((carte[i][j]==-1)&&(i%2==1 || j%2==1)&&(i!=x && j!=y))){
                            x=i;
                            y=j;
                            q=1;
                        break;
                        }
     
     
                            }
                            if(q==1){
                            break;
     
     
                            }
                }
     
     
     
     
        for(i=0;i<19;i++)
        {
            for(j=0;j<19;j++){
            printf("%d|", carte[i][j]);
            }
            printf(("\n"));
        }
     
     
    printf("\n\n bonjour %d %d",x,y);
        return 0;
    }

  2. #2
    Expert confirmé
    Inscrit en
    mars 2005
    Messages
    1 404
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 1 404
    Points : 4 102
    Points
    4 102

    Par défaut

    Personne n'a encore répondu à ton sujet parce qu'il est bien trop vague.

    Citation Envoyé par marcsturm Voir le message
    je ne sais pas pourquoi mon code ne fonctionne pas
    Tente de te mettre à notre place : comment le pourrions-nous, nous qui n'avons nulle connaissance de ton problème et de son contexte ?

    Tu fournis certes un programme a priori complet - ce qui est bien - mais ne détailles ni son rôle (ce qu'il est sensé produire avec le jeu d'entrées déterminé), ni le comportement rencontré et en quoi il n'était pas attendu. Avant même de penser à t'assister dans ta recherche d'une solution au problème, il faudrait donc que nous investissions du temps supplémentaire pour déterminer ces informations manquantes et que tu dois pourtant détenir !

    Complète ton sujet et nous t'aiderons.

Discussions similaires

  1. generer un numero auto a chaque insertion
    Par julio84 dans le forum MS SQL-Server
    Réponses: 6
    Dernier message: 15/07/2003, 13h22
  2. generer une image bitmap a partir d'une scene OGL
    Par FreshLog dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/07/2003, 12h29
  3. generer xsl depuis xml avec balises inconues ?
    Par cedre dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 24/06/2003, 10h00
  4. [VB6] générer un recordset qui n'est pas lier à un bdd
    Par damyrid dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/06/2003, 18h48
  5. [VB.Net] Comment generer une page html dynamiquement ?
    Par Anonymous dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/03/2003, 11h22

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