Code Probleme, brauche dringend Hifle !



  • Hallo c++ Communety,
    ich würde gerne ein zahlenratten game erstellen leider habe ich einen code fehler und keine passende lösung dazu.

    Hier erstmal den code:

    #include <iostream>
    #include <stdlib.h>
    #include <string>
    using namespace std;
    
    class Acc
    {
    	private:
    	public:
    
    		int lvl;
    		int Fail;
    		int Versuche;
    		int zahl;
    		int ezahl;
    		string Username;
    
    		void text1()
    		{
    			cout << "(Bestatige mit ENTER)|Bitte gebe dein Username ein: ";
    			cin  >> Username;
    			getchar();
    			system("cls");
    			// Ausgabe von text, und einspeichern von dem Username.
    			// Danach soll die Konsole Geleert werden von system("cls");		
    		}
    
    		void text2()
    		{
    			cout << "Wilkommen " << Username << " in der Welt des Zahlenratten !\n\n\n" << endl;
    		}
    
    		void text3()
    		{	
    			cout << "Die von ihnen eingegebene Zahl ist kleiner als die Richtige Zahl!" << endl;
    			Versuche++;
    			system("PAUSE");
    			system("cls");
    		}
    
    		void text4()
    		{	
    			cout << "Die von ihnen eingegebene Zahl ist groeser als die Richtige Zahl!" << endl;
    			Versuche++;
    			system("PAUSE");
    			system("cls");
    		}
    
    		void text5()
    		{	
    			cout << "Sie haben es erraten !" << endl;
    			Versuche++;
    			cout << "Ihre Fehler Quote liegt bei, Falsch Gerraten: "  << Fail << "/" << Versuche << " :Versuche" << endl; 
    			system("PAUSE");
    		}
    
    		void text6()
    		{
    			cout << "Gebe eine Zahl ein: ";
    			cin  >> ezahl;
    		}
    
    };
    
    int main()
    {
    
    	Acc A;
    	A.Fail     = 0;
    	A.Versuche = 0;
    	A.zahl     = 30;
    
    	A.text1();
    
    	A.text2();
    
    	A.text6();
    
    		if(A.zahl >= A.ezahl)
    		{
    		A.text3();
    		}
    
    		if(A.zahl <= A.ezahl)
    		{
    		A.text4();
    		}
    
    		if(A.zahl == A.ezahl)
    		{
    		A.text5();
    		}
    
    	getchar();
    	return 0;
    }
    

    Mein Problem dabei ist die If anweißung, was ihr selber merken werdet wenn ihr diesen code eingibt, wird nicht verhindern das die anderren if anweißungen ausgeführt werden sondern läuft sie ohne mir bekannten Grund alle durch und somit kann man am ende nicht sagen ob das ergebnis nun richtig, kleiner oder höher ist ....

    Hoffe mir kann einer von euch helfen !
    Danke an alle die Verständliche bzw. für idioten ausgedrückte,
    erliche hilfreiche Antworten posten !



  • Hallo,

    mach mal die if-Anweisungen zu einem else if:

    if( bedingung1 ) {
    
    } else if( bedingung2 ) {
    
    } else if( bedingung3 ) {
    
    } else {
     // keine der bedingungen ist wahr
    }
    


  • Außerdem schließen sich deine <= >= == aus.

    Entweder die Zahl ist kleiner < oder > oder genau gleich ==.
    Wird bei dir aber die richtige Zahl erraten, so wird jede if-Anweisung ausgeführt, weil alle auch auf == prüfen 😉



  • Danke für eure schnelle und verständliche´n Antworten, ich werde es gleich einmal testen 🙂


Anmelden zum Antworten