Partage
  • Partager sur Facebook
  • Partager sur Twitter

prototypes sans fonctions ?

Mario sokoban

Sujet résolu
    27 juillet 2006 à 11:46:45

    salut à tous, je suis en train de faire un sokoban et comme je suis bloqué par moment, je regarde un peu sur le tuto de M@theo21 :honte:

    mais j'ai vu qu'il avait mit des prototypes mais pas de fonctions o_O

    enfin plus précisément, il y a des prototypes dans les .h des fonction dans le main() mais pas de définition de fonctions après le main o_O

    si quelqu'un pouvait m'éclairer :-°

    voici mon code pour le moment :

    mode d'emploi
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <SDL/SDL_image.h>

    #include "constantes.h"
    #include "emploi.h"

    int main(int argc, char *argv[])
    {
        SDL_Surface *ecran = NULL, *menu = NULL;
        SDL_Rect positionMenu;

        int continuer = 1;
        SDL_Event event;

        SDL_Init(SDL_INIT_VIDEO);

        SDL_WM_SetIcon(SDL_LoadBMP("caisse.bmp"), NULL);
        ecran = SDL_SetVideoMode(LARGE_FENETRE, HAUT_FENETRE, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
        SDL_WM_SetCaption("BigGy Sokoban 1.0", NULL);

        menu = SDL_LoadBMP("menu.bmp");
        positionMenu.x = 0;
        positionMenu.y = 0;

        SDL_BlitSurface(menu, NULL, ecran, &positionMenu);

        SDL_Flip(ecran);

        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
                    break;
                case SDL_KEYDOWN:
                    switch(event.key.keysym.sym)
                    {
                        case SDLK_ESCAPE:
                            continuer = 0;
                            break;
                        default:
                            retour(ecran);
                    }
            }
            // Effacement de l'écran
            SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
            SDL_BlitSurface(menu, NULL, ecran, &positionMenu);
            SDL_Flip(ecran);
        }


        SDL_FreeSurface(menu);
        SDL_Quit();

        return EXIT_SUCCESS;
    }

    void retour(SDL_Surface* ecran)
    {
        ecran;
        fopen("main.c", "r");
    }


    main.c
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL/SDL.h>
    #include <SDL/SDL_image.h>

    #include "constantes.h"
    #include "jeu.h"
    #include "editeur.h"
    #include "emploi.h"

    int main(int argc, char *argv[])
    {
        SDL_Surface *ecran = NULL, *menu = NULL;
        SDL_Rect positionMenu;

        int continuer = 1;
        SDL_Event event;

        SDL_Init(SDL_INIT_VIDEO);

        SDL_WM_SetIcon(SDL_LoadBMP("caisse.bmp"), NULL);
        ecran = SDL_SetVideoMode(LARGE_FENETRE, HAUT_FENETRE, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
        SDL_WM_SetCaption("BigGy Sokoban 1.0", NULL);

        menu = SDL_LoadBMP("menu.bmp");
        positionMenu.x = 0;
        positionMenu.y = 0;

        SDL_BlitSurface(menu, NULL, ecran, &positionMenu);

        SDL_Flip(ecran);

        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
                    break;
                case SDL_KEYDOWN:
                    switch(event.key.keysym.sym)
                    {
                        case SDLK_ESCAPE:
                            continuer = 0;
                            break;
                        case SDLK_KP1:
                            jouer(ecran);
                            break;
                        case SDLK_KP2:
                            editeur(ecran);
                            break;
                        case SDLK_KP3:
                            emploi(ecran);
                    }
            }
            // Effacement de l'écran
            SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
            SDL_BlitSurface(menu, NULL, ecran, &positionMenu);
            SDL_Flip(ecran);
        }


        SDL_FreeSurface(menu);
        SDL_Quit();

        return EXIT_SUCCESS;
    }

    void jouer(SDL_Surface* ecran)
    {

    }

    void editeur(SDL_Surface* ecran)
    {

    }

    void emploi(SDL_Surface* ecran)
    {
        fopen("emploi.c", "r");
    }
    • Partager sur Facebook
    • Partager sur Twitter
    Envie de mettre les mains dans le cambouis ? Passez à Funtoo GNU/Linux. DO IT!
      27 juillet 2006 à 12:00:49

      les fonctions se trouve dans un fichier autre .c
      • Partager sur Facebook
      • Partager sur Twitter
        27 juillet 2006 à 12:06:19

        dans fichiers.c ?
        • Partager sur Facebook
        • Partager sur Twitter
        Envie de mettre les mains dans le cambouis ? Passez à Funtoo GNU/Linux. DO IT!
          27 juillet 2006 à 12:24:19

          Les proto sont toujours dans un header et les fonctions définies dans un fichier .c à part, portant en général le même nom que le .h .

          Le header contenant les protodoit etre inclus dans le fichier qui a besoin de ces fonctions.
          • Partager sur Facebook
          • Partager sur Twitter
            27 juillet 2006 à 12:42:08

            ok, merci :p
            • Partager sur Facebook
            • Partager sur Twitter
            Envie de mettre les mains dans le cambouis ? Passez à Funtoo GNU/Linux. DO IT!

            prototypes sans fonctions ?

            × 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