Mon programme n'appelle pas ses fonctions
Bonjour tout le monde!
J'ai un... problème =D
J'ai décidé de réécrire un petit programme qui fonctionnait parfaitement (jusqu'à ce que je le modifie à-moitié sans créer de sauvegarde, tout ça ^^).
Bon, en gros mon programme contient a une structure comme suit (pas d'inquiétude, je vous donne aussi le code plus bas):
Main:
- Affiche un "Chargement en cours" bidon.
- Appelle la fonction "MenuAccueil".
À terme, le "Chargement en cours" sera remplacé par le logo de ma boîte (parce que oui, j'aurai ma boîte... un jour ^^).
MenuAccueil:
- Affiche le titre du jeu, et propose les quatre possibilités suivantes: A Jeu, B Meilleur score, C Crédits, D Quitter.
- L'utilisateur doit entrer la lettre qu'il veut (majuscules et minuscules sont prises en compte) pour accéder aux différentes possibilités. Quand le choix a été fait, "MenuAccueil" appelle d'autres fonctions.
- Pour l'instant, les fonctions que "MenuAccueil" doit appeler sont vides, et elles devraient seulement ne rien faire, logiquement.
Mon problème, c'est que j'ai demandé à ce que ma fonction "MeilleurScore" (qu'on appelle via le menu d'accueil) affiche "Bonjour!" pour voir si ça marchait.
Que dalle, ça affiche le menu d'accueil en boucle sans dire bonjour!
Je me suis demandé si je ne devais pas faire quelque chose pour que mon programme reconnaisse les lettres que je lui donne, parce que je sais qu'il reçoit un code pour chaque caractèrs (ASCII par exemple). J'ai un clavier QWERTZ, peut-il y avoir un décalage pour cette raison?
...mais quand j'y pense (regardez mon code en-dessous), le programme devrait donc me dire que j'ai écrit une réponse erronée...
Voici mon code, quand même ;D
"Main"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <iostream>
using namespace std;
int main()
// Programme principal
// Exécution automatique avant toute chose
// Dirige vers le menu d'accueil
{
// Déclaration des variables
// Déclaration des fonctions
void MenuAccueil();
// Distraction du joueur à l'exécution du programme
cout << "Chargement en cours..." << endl;
// Ouverture du menu d'accueil
MenuAccueil();// Appel de MenuAccueil
} |
"MenuAccueil"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| #include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
void MenuAccueil()
// Accueillir l'utilisateur
// Diriger l'utilisateur vers les différentes fonctions du programme
{ // Déclarer les variables
string texte;
int step(1);
// Déclarer les fonctions
void MeilleurScore();
while(step!=10)
{ switch(step)
{ case 1: // Afficher le Menu d'accueil
cout << "Menu d'accueil" << endl;
cout << "A Jouer" << endl;
cout << "B MeilleurScore" << endl;
cout << "C Credits" << endl;
cout << "D Quitter" << endl;
step=2;
break;
case 2: // Lire la réponse du joueur
cin >> texte;
step=3;
break;
case 3: // Lire la réponse du joueur
if(texte=="A"||"a")
{ // Exécuter la fonction Jeu
step=1; // Aller au menu d'accueil
}
else if(texte=="B"||"b")
{ MeilleurScore(); // Exécuter la fonction MeilleurScore
step=1; // Aller au menu d'accueil
}
else if(texte=="C"||"c")
{ // Exécuter la fonction Credits
step=1; // Aller au menu d'accueil
}
else if(texte=="D"||"d") // Interrompre le programme
{ step=10; // Aller à la dernière étape
}
else // Réponse erronée
{ cout << "Reponse erronee, recommencez" << endl;
step=2; // Retourner à la lecture de la réponse du joueur
}
break;
}
}
} |
"MeilleurScore"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| #include <iostream>
#include <string.h>
#include <fstream>
using namespace std;
void MeilleurScore()
// Afficher le meilleur Score enregistré
{ // Déclarer les variables
// Déclarer les fonctions
cout << "Bonjour les amis!" << endl; // TEST |
Voilà. Essayez de compiler ça si vous voulez. À moi, sur avec CodeBlocks, ça rend 0 Error et 0 Warning =D