Fonction menu avec flèches en mode texte[dev c++]

Contenu du snippet

Il faut en fait créer deux variables globales pour le texte du menu et pour les premières lettres du texte du menu, par exemple:
char *menu_texte[4][6] = {"", "", "", "", "", "",
"", "Nouveau Jeu", "Sauvegarder Jeu", "Charger Jeu", "Options", "Quitter",
"", "Facile", "Moyen", "Difficile", "", "",
"", "Dans une plaine", "Au bord de Mer", "", "", ""};
char *menu_texte_lettre[4][6] = {"", "", "", "", "", "",
"", "N", "S", "C", "O", "Q",
"", "F", "M", "D", "", "",
"", "D", "A", "", "", ""};

Source / Exemple :


int choix;
#define  HAUT             72
#define  BAS              80
#define  ENTER            13
//rajoutez le code ci dessus dans votre fichier .c
void sim_menu(int nombre, int nombre2, int couleur1, int couleur2, int x, int y)
{
  int i, j; //boucles
  char touche = 0;
  choix = 1;
  while (touche != ENTER)
  {
    for (j = 0; j <= nombre2; j++)
    {
      gotoxy(x, y + j);
      if (choix == j){
        textcolor(couleur2);}
      else{
        textcolor(couleur1);}
      printf("%s", menu_texte[nombre][j]);
      gotoxy(x, y + j);
      sim_textcolor(menu_texte_lettre[nombre][j], 14);
    }
    touche = getch();
    if (touche == BAS)
    {
      choix++;
      if (choix == nombre2 + 1){
        choix = 1;}
    }
    if (touche == HAUT)
    {
      choix--;
      if (choix == 0){
        choix = nombre2;}
    }
  }
}

void sim_textcolor(char * texte, int couleur)
{
  textcolor(couleur);
  printf("%s", texte);
}

Conclusion :


Si vous avez pas bien compris l'histoire des varibles globales, écrivez moi!

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.