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

C Discussion :

Problème de mouvement 2048


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème de mouvement 2048
    Bonsoir a tous,

    je viens demander votre aide car cela fait des jours que je bosse sur mon 2048. Et m'approchant de la fin, je m'apercois que mes grosses fonctions de déplacements ne gèrent pas un cas particulier. Elles sont toutes contrsuites sur le même modèle a peu près, et je n'arrive pas a contourner ce problème voici mon code et le screen du bug :

    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
     
    GRILLE mvtHaut( GRILLE gr, int* p){
        int i = 0;
        // Parcours toute ma matrice
        while ( i <= 3){
            for(int j = 1; j <= 3; j++){
                    int k = j;
                    // La k-ieme case va avancer et faire les fusions si besoin
                    while( k != 0 ){
                        if (gr.tab[k-1][i] == 0  ){
                            gr.tab[k-1][i] = gr.tab[k][i];
                            gr.tab[k][i] = 0;
                        }
                        if ( gr.tab[k][i] == gr.tab[k-1][i]){
                            gr.tab[k-1][i]*=2;
                            gr.tab[k][i] = 0;
                            *p +=  gr.tab[k-1][i];//score
                            //si je fais une fusion j'arrete et je passe a la case suivante
                            k = 1;
                        }
                        k--;
                    }
            }
            i++;
        }
        return gr;
    }

    Nom : Capturedemoralisante.PNG
Affichages : 168
Taille : 34,7 Ko

    La colonne de gauche devrait me donner la suite : <8,8,2,0>

    Petite explication pour mon code, j'utilise une structure qui est une matrice (de la forme int tab[][]). L'idée du code est de partir d'une case après la case la plus en haut (Pour ce problème je vous ai fournis le mouvement vers le haut). Et je fais parcourir ladite case jusqu'en haut de la grille. Une fois arrivée a son chemin je descend et fait pareil pour la suivante, et je fusionne si possible.

    Le problème est, dans ce cas, mon k qui represente le trajet de la case a la position [0][2], va refaire une fusion alors que celle-ci n'est pas voulue !

    Veuillez excuser mes explications un peu balbutiante et j'espere que vous verrez ce que mes yeux n'ont pas vu.
    Merci d'avance

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    En théorie, pour obtenir le bon résultat, lors d'un déplacement vers le haut, il faut commencer par le haut et déplacer une à une les blocs, vers le haut.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. [OpenGL 1.x] problème de mouvement de balle
    Par cha59 dans le forum OpenGL
    Réponses: 1
    Dernier message: 04/01/2014, 11h11
  2. Probléme test mouvement clavier
    Par matwia dans le forum SDL
    Réponses: 7
    Dernier message: 16/09/2013, 16h05
  3. Problème de mouvement
    Par Charvalos dans le forum Débuter
    Réponses: 4
    Dernier message: 02/10/2010, 03h45
  4. dessin sur une form: problème et mouvement
    Par Lnmex dans le forum Windows Forms
    Réponses: 24
    Dernier message: 02/10/2009, 20h25
  5. Problème de load (2048 -> 4096)
    Par Daniel.gil dans le forum Adaptive Server Enterprise
    Réponses: 1
    Dernier message: 07/11/2007, 09h34

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