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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 882 fois - Téléchargée 34 fois

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

Ajouter un commentaire

Commentaires

tony31400
Messages postés
1
Date d'inscription
samedi 13 janvier 2007
Statut
Membre
Dernière intervention
5 mars 2008
-
Euhhhh, tu connais le C au moins ?
Sa te marque ça car tu n'as pas déclaré sim_textcolor, 2 solutions s'offrent à toi :
- Tu mets la fonction sim_textcolor tout en haut
- ou alors tu déclares simplement le prototype de la fonction.

PS: Le code date de 2002...
luluthefirst
Messages postés
106
Date d'inscription
samedi 25 avril 2009
Statut
Membre
Dernière intervention
20 mars 2010
-
mais arreter donc de faire des codes FAUX !!!! SA ME FAIT DES ERREURS A LA COMPLICATION !!! :

48 D:\Dev-Cpp\bin\test.c conflicting types for 'sim_textcolor'
30 D:\Dev-Cpp\bin\test.c previous implicit declaration of 'sim_textcolor' was here

DONC METTEZ DES CODES VRAIX !!

merci.
mastave
Messages postés
53
Date d'inscription
samedi 24 novembre 2001
Statut
Membre
Dernière intervention
25 janvier 2003
-
Oui, pardon, je suis désolé, je fais que des conneries sur mes sources en ce moment, c'est parce que je les tire d'un jeu que je suis en train de faire au Labo(Sim City), alors je fais pas tjrs attention a tout.
Je rajoute de ce pas ce qu'il faut.
cmarsc
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003
-
salut,

INFORMATIONS pour ceux qui ne connaissent pas les codes ASCII suivantes :

#define GAUCHE 75
#define DROITE 77
#define HAUT 72
#define BAS 80
#define ENTER 13
#define ESCAPE 27
....
je ne vais pas tout mettre mais avec ce petit code on peut les retrouver.

#include <stdio.h>
#include <conio.c> // <conio.h>

int main()
{
char clavier;
while (clavier != 27) { // ESC POUR SORTIR
clavier = getch();
printf(" le caractere %c correspond au code numero : %d
",clavier,clavier);
}
return 0;
}

au fait utilisation de choix mais NON DECLARE SEULEMENT INITIALISE

POURQUOI NE METS-TU PAS TOUT LE CODE AVEC LES BIBLIOTHEQES C'EST UTILE POUR LES PETITS JEUNES "DEBUTANTS" NON ?

cordialement
cmarsc ;-)

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.