Partage
  • Partager sur Facebook
  • Partager sur Twitter

"Erreur de segmentation" AIDE POUR UN MEMORY EN C

Besoin d'une correction de ma fonction jeu1.c. PROJET avant le 21/12

    8 décembre 2018 à 9:44:42

    Bonjour, je dois réaliser dans le cadre d'un projet tuteuré un memory en langage C avec une bibliothèque graphique propre à nous (cf la documentation consigne : http://www.iut-fbleau.fr/sitebp/pt11/apl2018/YF1QY1DSKC53QKE1.php)

    Etant donné que je me suis mis seul, les autres groupes de 2 arrivent à bien avancer et quelques uns ont par ailleurs finis le jeu ^^ (ce qui n'est pas mon cas) ... Le 21 décembre étant la date limite, j'ai peur de ne pas y arriver malgré le temps que je puisse passer dessus :/

    Où j'en suis ?

    J'ai quand même fais la moitié du projet et j'ai finis : - Le menu, - La fenêtre pour les règle du jeu, - Le déplacement d'une fenetre graphique à une autre et - Le positionnement des cartes retournées au début de partie : 

    Placement des cartes en 5 x 4 / cartes retournées

    Avec notamment un simple code qui est pour le jeu2 (niveau moyen) :

    Code pour le jeu2

    Bref je suis bloqué à essayer de mettre maintenant des cartes aléatoirement sur le jeu .. et ça je n'y arrive pas depuis 1 semaine ...

    Je tiens à préciser que ce code à été fais par moi même mais en rajoutant des choses que j'ai vu sur le web pour un memory en C++ .. mais rien n'y fais je suis bloqué, Merci beaucoup pour votre temps d'écoute ^^ a bientôt !

    -
    Edité par NicolasIgz 8 décembre 2018 à 11:53:39

    • Partager sur Facebook
    • Partager sur Twitter
      9 décembre 2018 à 13:08:24

       NicolasIgz a écrit:

      tu t'y connais en C toi surement ? tu peux regarde ma conv sur le forum please .. "https://openclassrooms.com/forum/sujet/erreur-de-segmentation-aide-pour-un-memory-en-c"

      Tu as pollué au moins 4 post avec cette clownerie.



      -
      Edité par edgarjacobs 9 décembre 2018 à 13:11:03

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        9 décembre 2018 à 17:00:45

        Il faudrait certainement donner plus de détails. Quel est le problème ?

        Bref je suis bloqué à essayer de mettre maintenant des cartes aléatoirement sur le jeu .. et ça je n'y arrive pas depuis 1 semaine ...

        Précise quel est le souci : tu n'arrives pas à trouver un algorithme pour ça ? Tu as l'idée d'un algorithme mais, une fois programmé, il ne donne pas les bons résultats ? Ou bien c'est juste un problème de C ? Le deuxième programme de ton message, il correspond à la mise des cartes aléatoirement dans le jeu ? C'est lui qui ne marche pas ? C'est-à-dire ? Il faut quoi et il devrait faire quoi ?

        Là, sans aucune information, je ne vois pas comment tu peux recevoir de l'aide.

        • Partager sur Facebook
        • Partager sur Twitter
          10 décembre 2018 à 16:25:10

          oui je ne trouve aucun algorithme permettant de réaliser le melange de mes cartes, les choisir directement de mon dossier image et les placer sur le jeu .. puis quand on clique sur une image déjà place au dos et bien on fais apparaître celle qui devrait se trouver à cet endroit ... je ne sais pas comment m’y prendre
          • Partager sur Facebook
          • Partager sur Twitter
            11 décembre 2018 à 11:49:51

            Bonjour,

            Merci d'utiliser la mise en forme de code Image

            Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Image de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.

            • Partager sur Facebook
            • Partager sur Twitter

            Pas d'aide concernant le code par MP, le forum est là pour ça :)

              11 décembre 2018 à 18:17:31

              Salut,

              Marrant ta lib graphique, visiblement ta fonction charger affiche également. Ça permet de simplifier pas mal, par contre j'espère qu'en interne ces images sont gardées en cache et pas rechargées a chaque itération !

              • Partager sur Facebook
              • Partager sur Twitter

              Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                13 décembre 2018 à 16:44:57

                Fvirtman a écrit:

                Salut,

                Marrant ta lib graphique, visiblement ta fonction charger affiche également. Ça permet de simplifier pas mal, par contre j'espère qu'en interne ces images sont gardées en cache et pas rechargées a chaque itération !


                /*  PT11_APL2018 - jeu.c
                    ---
                    AUTEUR : NICOLAS FAFIN
                    VERSION : X
                    DATE FIN DU PT : Vendredi 21 décembre 2018
                */

                /* include */
                #include <stdlib.h>
                #include <stdio.h>
                #include <graph.h> /* permet d'utiliser les fonctions présentent dans la lgraph */
                #include <time.h>
                #include <unistd.h> /* permet d'utiliser la fonction sleep(); */
                /* define */
                #define POSX 180
                #define POSY 80
                #define LARGEUR 1600
                #define HAUTEUR 850

                int main(void) {
                    InitialiserGraphique();
                    CreerFenetre(POSX,POSY,LARGEUR,HAUTEUR); /* la fenêtre se lance et se place aux points (POSX,POSY) de taille LARGEUR x HAUTEUR */
                   
                    srand(time(NULL));
                    int posxc=(LARGEUR/2)-350;
                    int posyc=100;
                    int i,j;

                    const int SPRITE_SIZE = 12, SPRITE_RAND_SIZE = 24, TWO_CARD = 2, MAX = 24, MIN = 0;

                        int sprite[12] = {
                            ChargerSprite("./images/cartes1/c0.png"),
                            ChargerSprite("./images/cartes1/c1.png"),
                            ChargerSprite("./images/cartes1/c2.png"),
                            ChargerSprite("./images/cartes1/c3.png"),
                            ChargerSprite("./images/cartes1/c4.png"),
                            ChargerSprite("./images/cartes1/c5.png"),
                            ChargerSprite("./images/cartes1/c6.png"),
                            ChargerSprite("./images/cartes1/c7.png"),
                            ChargerSprite("./images/cartes1/c8.png"),
                            ChargerSprite("./images/cartes1/c9.png"),
                            ChargerSprite("./images/cartes1/c10.png"),
                            ChargerSprite("./images/cartes1/c11.png"),
                        };


                        int spriteRand[SPRITE_RAND_SIZE];

                        for (i=0; i< SPRITE_RAND_SIZE; i++) {
                            spriteRand[i] =0;
                        }

                        for (i=0; i < SPRITE_SIZE; i++) {
                            int current = sprite[i];
                           
                            for(j=0; j < TWO_CARD;) {
                                int randKey = (rand() % MAX);       
                                if(spriteRand[randKey] == 0) {
                                    spriteRand[randKey] = current;
                                    j++;
                                }
                            }
                        }
                       
                        int grillerand[4][3];
                        int ligne, colonne;
                        i =0;

                        for (ligne =0; ligne < 4; ligne++) {
                            for (colonne=0; colonne <3; colonne++) {


                                grillerand[ligne][colonne] = spriteRand[i];
                                AfficherSprite(spriteRand[i],posxc,posyc);
                                        posxc=posxc+150;
                                        i++;
                            }
                            posxc=(LARGEUR/2)-350;
                            posyc=posyc+160;
                        }

                    Touche();
                    FermerGraphique();
                    return EXIT_SUCCESS;
                }
                Je n'y arrive pas .... quel est le problème ici ? ..j'suis en pls c'est fou ..
                • Partager sur Facebook
                • Partager sur Twitter

                "Erreur de segmentation" AIDE POUR UN MEMORY EN C

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown