Problem beim erstellen eines Konsolen Spiel



  • Hallo liebes Forum,
    ich lerne gerade c++ und wollte mal aus Jux ein kleines Spiel machen als erstes Projekt (Zahlen raten) Der Nutzer soll eine Zahl eingeben und das Programm soll anschließend darauf antworten entweder das die Eingabe zu groß ist oder zu klein und eben die gleiche Zahl, wenn es die gleiche ist soll ein Menü erscheinen so auch wenn es fehlschlägt worin der punkte stand und andere Optionen angeboten werden die der User durch eine switch Anweisung auswählen kann, okay genug der Worte ist ja auch kein reisen Programm ... wird man sich denken können was ich vor habe 😃

    #include <iostream>
    using namespace std;
    
    int auswahl_interface(int choosen, int punktex)
    {
        cout << "Beenden ? [1] Punktestand anzeigen ! [2] Weiter spielen [3]" << endl;
        cin  >> choosen;
    
        switch(choosen)
        {
        case 1:
            cout << "Spiel wird beendet." << endl;
            system("exit");
            break;
        case 2:
            cout << "Ihre Punktezahl lautet: " << punktex << endl;
            break;
        default:
            break;
        }
        return 0;
    }
    
    int main()
    {
        int zahl;
        int geraten;
        int versuche;
        int punkte;
    
        int auswahl;
    
        zahl = (rand() % 100) +1;
    do{
    
        system("cls");
        cout << "Welcome to the mini game names Number Quiz" << endl;
        cout << "Your Tip: ";
        cin  >> geraten;
        versuche++;
    
        cout << endl;
    
            if(geraten == zahl)
            {
                cout << "Sie haben es erraten !" << endl;
                cout << "Ihr aktueller Punktestand ist " << punkte << endl;
                zahl = (rand() % 100) +1;
                auswahl_interface(auswahl, punkte);
                getchar();
            }else if(geraten > zahl){
                cout << "Die von ihnen geratene Zahl ist groeser als die gesuchte Nummer" << endl;
                cout << "Bisherige Versuche: " << versuche << endl;
                auswahl_interface(auswahl, punkte);
                getchar();
            }else if(geraten < zahl)
            {
                cout << "Die von ihnen geratene Zahl ist kleiner als die zu erratene Nummer" << endl;
                auswahl_interface();
                getchar();
            }
        }while(geraten != zahl);
    
        return 0;
    }
    

    Danke schonmal im vorraus ! 😃


  • Mod

    ITsMeNr9818 schrieb:

    Danke schonmal im v****** ! 😃

    Für was? Was ist deine Frage? Was möchtest du?



  • Ich hab bei dem letzten Aufruf der Funktion die Parameter vergessen oh man xD



  • Es fehlen noch die Headerdateien windows.h (für system()) und cstdio (für getchar()). Die vergessenen Parameter hast du ja schon gefunden. Das Programm sollte sich so zumindest übersetzen lassen (davon ausgehend, dass es dein Problem war, es nicht übersetzen zu können).



  • cstdlib für system. Ist keine Windows-Funktion. http://en.cppreference.com/w/cpp/utility/program/system



  • Ich kannte nur das system() aus windows.h.



  • Ich bezweifle stark, dass system("exit") das Programm beendet.



  • Funktionert das Programm denn?
    Also system("exit"); kannst du schon mal in exit(0); umschreiben.
    Anstatt der do-while Schleife würde ich eine while Schleife nehmen und bei zahl== geraten break; machen. Sieht finde ich übersichtlicher aus und ist weniger fehleranfällig.



  • Das Programm funktioniert definitiv nicht so wie erwartet wurde. U. a muss der Programmablauf an sich überarbeitet werden und die Variablen müssen initialisiert werden.


Anmelden zum Antworten