Comment retourner à une certaine ligne du code ?

Résolu
BabyAzerty Messages postés 26 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 12 août 2010 - 25 nov. 2009 à 19:18
BabyAzerty Messages postés 26 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 12 août 2010 - 27 nov. 2009 à 18:51
Bonjour,


Je souhaiterai savoir comment retourner à un certain point du code ?
Par exemple :

Je lance un pendu (ou n'importe quel jeu)
Et lorsque je perds, j'affiche un menu avec (1) Retour au menu ou (2) Quitter le jeu.

Je pensais faire un switch (menu_perdu)
Puis avec case 2 : Exit(0);
Mais pour case 1: Je mets quoi pour retourner au début du jeu ??


Merci d'avance
A voir également:

13 réponses

cptpingu Messages postés 3839 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 29 juin 2024 124
26 nov. 2009 à 16:40
Attention, non testé et fait un peu à l'arrache(le découpage de code est à revoir, c'est juste pour te donner une idée de ce que tu devrais commencer à faire). Une fonction ne devrait pas excéder 25 lignes, et plus ton code est découpé en petite fonction, plus il est aisé à comprendre et à débugger.


void menu()
{
    //Affichage du menu
    while (kbhit()) getch();                /* Vide le buffeur */
    gotoligcol(4,0);
    puts("Choix du niveau de difficulte");
    gotoligcol(6,0);
    puts("Niveau 1 : Facile       (1)");
    gotoligcol(7,0);
    puts("Niveau 2 : Difficile    (2)");
    gotoligcol(8,0);
    puts("Quitter le jeu          (q)");
}

int game_easy()
{
 /*Blabla à coups de gotoligcol, printf */
                    
                    //Compte à rebourd
                    temps_max=15;
                    do
                    {
                        pause=getch();         //Démarrage sur appuie de la barre d'espace
                        
                        //Progammation du jeu (Un Pendu)
                        /* Blabla */
                        
                        for(temps=0;temps<=temps_max;temps++)    //Debut du décompteur
                        {
                            gotoligcol(20,17);
                            printf("%d",temps_max-temps);
                            Sleep(1000);
                            if(temps>=5)                  //Bipage si temps<=10
                            {
                                gotoligcol(20,18);
                                puts(" \a");
                            }
                            if(temps==temps_max)             //Affichage du Game Over si temps=0
                            {
                                /* Affichage Game Over */
                                
                                while (kbhit()) getch();            //Vide le buffeur
                                gotoligcol(17,2);                   //Choix retour menu ou fin du jeu
                                puts("Retour au menu          (1)");
                                gotoligcol(18,2);
                                puts("Quitter le jeu          (2)");
                            
                                choix_gameover=getch();
                                switch (choix_gameover)
                                {
                                    case 1: //Quitter le jeu 
                                            /*Blabla */
                                            exit (1);
                                        
                                    case 2: //ICI JE VOUDRAIS RETOURNER A L'AFFICHAGE DU MENU INITIAL
                                        return 1;
                                }
                            }
                        }
                    }while(pause!=' ');
  return 0;
}

int launch_game()
{
    while (error_menu==0)              /*Ignore la saisie si mauvais choix effectué (j'ai déclaré error_menu=0) */ 
    {
        niveau=getch();
        switch (niveau)                 /*Si Saisie correcte */
        {
            case'1': return game_easy();
            case '2': /* Blabla : return game_medium() */
                break;
            case 'q': /* Blabla : return game_hard() */
                break;
            default:
                error_menu=0;
        }
    }
  return 0;
}

int main()
{
    //Déclaration des ressources
    /* blabla */
    
    //Affichage d'une bannière de bienvenue (qui reste afficher pendant toute la durée du programme avec la fonction gotoligcol)
    /* blabla */
   int result = 1;
   while (result != 0)
   {
     menu();    
     result = launch_game();
   }
    return 0;
}
3