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"
"MenuAccueil"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 }
"MeilleurScore"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } } }
Voilà. Essayez de compiler ça si vous voulez. À moi, sur avec CodeBlocks, ça rend 0 Error et 0 Warning =D
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager