Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mon Sokoban

Première version

    19 avril 2006 à 0:22:23

    Bonjour tout le monde :)
    Voila une version un peu plus avancée de mon sokoban :D

    Voila l'adresse :
    http://bhleyrault.free.fr/files/SokobanAddictFinal.rar

    J'ai essayé de le faire en m'aidant le moins possible du cours. ;)

    Voila merci a++

    [Edit : Updated New Version ]
    [Edit : Ajout de plusieurs niveaux ]
    [Edit : Ajout de l'editeur de niveau ]
    [Edit : Suppression de bugs ]
    [Edit : Version Finale ]
    • Partager sur Facebook
    • Partager sur Twitter
      19 avril 2006 à 0:34:29

      salut alors j'ai pas testé, mais dans ton archive met les DLL .Car l'executable ve pas se lancer car il manque sdl.dll

      voili voilou je te di ce que je pense demain ++ :p
      • Partager sur Facebook
      • Partager sur Twitter
        19 avril 2006 à 12:00:27

        Perso, j'aime pas les graphisme et le bonhomme bleu se détache très mal du fond verts, après niveau réalisation c'est bien mais essaye de faire plusieurs niveaux qui s'enchainent !! ^^
        • Partager sur Facebook
        • Partager sur Twitter
          19 avril 2006 à 13:59:30

          sympa, vivement la suite ;)
          • Partager sur Facebook
          • Partager sur Twitter
            19 avril 2006 à 14:44:13

            Voila je viens de l'améliorer donc si vous voulez jeter un coup d'oeil ^^
            ( C'est le même lien )

            J'ai ajouté un fichier d'aide, plusieurs niveau qui s'enchainent..

            Pour les graphismes c'est vrai c'est pas terrible j'ai tout fait moi meme a la va vite ^^ Je vais m'y attaquer serieusement.
            • Partager sur Facebook
            • Partager sur Twitter
              19 avril 2006 à 20:35:33

              bonjour,
              Je vien d'essayer ton sokoban, et je m'interroge sur un point: comment as tu fait pour gérer les différents niveaux???
              Car moi j'ai un peu de mal à afficher un niveau différent quand on gagne >_<

              D'avance merci!

              @+
              • Partager sur Facebook
              • Partager sur Twitter
                19 avril 2006 à 21:52:49

                En fait.. :)

                Quand le joueur gagne un niveau j'incrémente une variable "lvl".

                Cette variable lvl est en fait le numero de la ligne que je vais lire dans le fichier niveaux.txt.

                Dans le fichier niveaux.txt il y a un nom de niveau par ligne.
                J'ai une fonction qui va lire la ligne correspondant a la valeur de la constante "lvl" actuelle.

                Je recupere la ligne qui n'est autre que le nom du fichier que je vais ouvrir grace a une autre fonction. Dans ce fichier j'ai la suite de 0, 1, 2,3,4 et 5 correspondant aux differentes cases.

                Et c'est reparti :p

                Si ceela n'est pas assez bien expliqué, demande moi je te montrerai les fonctions dont j'ai parlé!
                Bye.
                • Partager sur Facebook
                • Partager sur Twitter
                  20 avril 2006 à 12:21:01

                  Voila j'ai ajouté un editeur de niveaux indépendant.
                  Et la possibilité de lancer le niveau edité dans le jeu au lieu des niveaux habituels.

                  :p

                  Dites moi ce que vous en pensez ^^
                  • Partager sur Facebook
                  • Partager sur Twitter
                    20 avril 2006 à 14:26:04

                    Bonjour,
                    Pour la mise à jour que tu as, pourquoi ne pas avoir mis l'éditeur dans le jeu?? (je veut dire par là pourquoi avoir recréer un autre exécutable??)
                    Pour ce qui est de l'explication que tu m'a donné pour la gestion de tes niveaux, bah je suis désolé..mais G pas compris! :euh: ...je veut bien voir la fonction car je comprendrais peut être mieux (ou au pire c'est plus simple d'expliquer quelque chose quand on l'a sous les yeux! ;) )
                    D'avance merci!

                    @+
                    • Partager sur Facebook
                    • Partager sur Twitter
                      20 avril 2006 à 15:56:46

                      Pourquoi avoir mis l'editeur hors du jeu... [ Edit : Réglé ;) ]
                      J'en sais trop rien :) .

                      Sinon je prefere pas te donner tout le programme c'est vraiment le fouillis mais voila les parties interressantes pour le passage de niveau :

                        /* Dans le jouer.c */
                        // Prends le niveau suivant ( ou le premier niveau ) et le charge //
                           getlevel(level,lvl);
                           lvl++;
                           lecture(table, level);





                        /* Dans le getlevel.c */
                      void getlevel(char table[], int lvl)
                      {
                           // Ca c'est la fonction qui lit le fichier contenant le nom de tous les                                                              niveaux.
                           FILE* fichier = NULL;
                           fichier = fopen("niveaux.gr","r");
                           // Je connais la longueur des lignes donc le fseek me permet de changer de ligne en fonction de l'avancement du joueur.
                           fseek(fichier, lvl*12, SEEK_SET);
                           table = fgets(table, 11, fichier);
                           // Je renvois le nom du niveau a charger.
                           
                      }




                        /* Dans le lecture.c */
                      void lecture(int table[][NB_LARG], char nom[])
                      {
                        // La une fois que je connais le nom du niveau a charger j'effectue la lecture deu fichier correspondant en recuperant la suite de chiffres
                        int i=0, j=0, k=0;
                        int cha = 0, continuer=1;
                        FILE* fichier = NULL;
                        fichier = fopen(nom,"r");
                        for ( i=0 ; i<NB_HAUT ; i++ )
                            {
                                  for ( j=0 ; j<NB_LARG ; j++ )
                                      {
                                            cha = fgetc(fichier);
                                            switch (cha)
                                            {
                                                       case '0':
                                                       table[i][j]=0;
                                                       break;
                                                       case '1':
                                                       table[i][j]=1;
                                                       break;
                                                       case '2':
                                                       table[i][j]=2;
                                                       break;
                                                       case '3':
                                                       table[i][j]=3;
                                                       break;
                                                       case '4':
                                                       table[i][j]=4;
                                                       break;
                                                       case '5':
                                                       table[i][j]=5;
                                                       break;
                                                       case '6':
                                                       table[i][j]=6;
                                                       break;
                                            }
                                      }
                            }
                        fclose(fichier);
                      }



                      Bon j'espère que ca sera un peu plus clair comme ca ^^
                      Sinon je t'enverrais tout mon code..
                      Mais j'ai un peu honte car il n'est pas toujours clair ;)

                      [Edit : Ca y est j'ai mis l'editeur dans le jeu, c'est vrai c'est plus sympa ^^ ]
                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 avril 2006 à 21:09:25

                        Oui je comprend mieux.Merci de me la montrer, ca devient tout de suite beaucoup plus compréhensible! :D

                        Mais l'inconvéniant de ceci, c'est que tu te retrouve après avec plein de fichier niveau, et que lorsque l'on en crée un avec l'éditeur on ne peut en créer que un seul... :euh:

                        (D'ailleurs en parlant de l'éditeur je voulais te signaler que ça serait bien d'activer la "répétition des clics" car C embetant de toujours devoir cliquer pour placer un truc, surtout quand on veux mettre plein de mur :colere: )

                        Je pense (enfin ce n'est qu'un idée comme une autre), que ca serait mieux de lire un seul fichier, qui lirait les 144 (12*12) caractères pour afficher le niveaux désiré. Et pour passer au niveau suivant il suffirait de compter les '\n' (enfin je pense, dites moi si je me trompe)...Faudra que j'essaye ça quand j'orais le temps!!!
                        • Partager sur Facebook
                        • Partager sur Twitter
                          21 avril 2006 à 14:00:10

                          Tout ce qui est dit ici m a l'air intérressant, mais je voulu lance le jeu sur mon portable (pas de pavé numérique) et je ne parvient pas a lancer les differentes parties de ton programme (nouveu jeu, aide ...)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            21 avril 2006 à 21:55:32

                            Grahf, pourrais-tu me passer le code de ta fonction qui affiche le menu principal du jeu ( ton main.c quoi) stp? Car je recontre quelques difficultés pour afficher l'aide à partir du menu principal.

                            Merci d'avance.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Mon Sokoban

                            × 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