2017-07-04 1 views
-1

J'ai des problèmes C++. Sur un jeu d'aventure de texte que je fais, et sur une partie où j'ai des choix pour les différentes options sur ce qu'il faut faire dans une maison, tous les choix que je fais va toujours à la fonction Sleep() vide:C++ si autre instruction ne va pas droit chemin pour le jeu d'aventure de texte, va toujours à la même fonction de vide

void Home() 
{ 
    cout << "\nYou are in the living room of your rented home. Everything looks nice and tidy." << endl; 
    cout << "Choices:" << endl; 
    cout << "Sleep" << endl; 
    cout << "Leave" << endl; 
    cout << "Stats" << endl; 
    cin >> choice; 

    if (choice == "Sleep" || "sleep") 
    { 
     Sleep(); // No matter what choice I make, it always 
     //goes to the Sleep(); void. 
    } 
    if (choice == "Leave" || choice == "leave"){ 
     TownSquare(); 
    } if (choice == "Stats" || choice == "stats") { 
     StatsH(); 
    } 
    else { 
     cout << "Please choose correctly!" << endl; 
     Home(); 
    } 
} 

Toute aide sera très appréciée. Je vous remercie!

+0

'if (choix == "sommeil" || "sommeil")' - cette ligne ne semble pas comme les autres. Peut-être que ce n'est pas vrai? –

+0

pourquoi n'avez-vous pas utilisé le format: if (choice == "Leave" || choice == "leave") pour toutes vos décisions/instructions de branchement ?? –

Répondre

2

Votre ligne:

if (choice == "Sleep" || "sleep") 

Évalue comme:

if ((choice == "Sleep") || "sleep") 

Ce qui est toujours vrai que "sleep" sera toujours déclencher. Vous voudrez peut-être faire une bonne table de consultation ici et forcer l'entrée en minuscules si c'est un problème.

+0

Merci tadman! – Ejay