Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

23.07.2008, 15:41

Das Programm will nicht aufgehen!

Hallo,

Ich bin am programmieren meines ersten "richtigen" Spiels. Es sind wirklich keine Fehler drin aber doch läuft etwas schief! Ich habe eine Funktion erstellt die sich

C-/C++-Quelltext

1
int SpielenMenue (int Auswahl);
nennt. Wenn man nun auf die "1" drücken sollte sollte das kommen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
    cout << "Schwierigkeitsgrad" << endl;
    cout << "------------------" << endl;
    cout << "1) Leicht" << endl;
    cout << "2) Mittel" << endl;
    cout << "3) Schwer" << endl;
    cout << "---" << endl;
    cout << "4) Beenden" << endl;
    cout << "-----" << endl;
    cout << "Deine Wahl: ";
    cin >> Auswahl;
    cout << "\n\n\n";


Doch das Problem ist: Es kommt gar nicht dazu! Wenn ich die "1" drücke kommt wieder der Anfang. Das mein' ich in etwa so:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
        cout << "Mathe-Experte" << endl;
        cout << "-------------" << endl;
        cout << "1) Spielen" << endl;
        cout << "2) Wie gehts?" << endl;
        cout << "3) Beenden" << endl;
        cout << "-----" << endl;
        cout << "Deine Wahl: 1";
        cin >> Auswahl;
        cout << "-----" << endl;
        cout << "\n\n\n";


Da sieht man ja noch, das man da grad die 1 gewählt hat. Und dann passiert das wieder:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
        cout << "Mathe-Experte" << endl;
        cout << "-------------" << endl;
        cout << "1) Spielen" << endl;
        cout << "2) Wie gehts?" << endl;
        cout << "3) Beenden" << endl;
        cout << "-----" << endl;
        cout << "Deine Wahl: ";
        cin >> Auswahl;
        cout << "-----" << endl;
        cout << "\n\n\n";


Ich weiß nicht was damit los ist und brauche mal wirklich Hilfe. Ich hoffe, dass ich jetzt einmal die Frage richtig und gut gestellt habe... Hier ist noch der ganze Code:

C-/C++-Quelltext

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// Mathe-Experte

//

#include <iostream>

using namespace std;

int SpielenMenue (int Auswahl);
int SpielenLeicht (int Auswahl, int Lebensenergie);
int SpielenMittel (int Auswahl, int Lebensenergie);
int SpielenSchwer (int Auswahl, int Lebensenergie);

int main ()
{
    // Variablen

    //

    int Auswahl = 0;
    int Lebensenergie = 100;

    // while-Schleife

    while (Auswahl != 3)
    {
        cout << "Mathe-Experte" << endl;
        cout << "-------------" << endl;
        cout << "1) Spielen" << endl;
        cout << "2) Wie gehts?" << endl;
        cout << "3) Beenden" << endl;
        cout << "-----" << endl;
        cout << "Deine Wahl: ";
        cin >> Auswahl;
        cout << "-----" << endl;
        cout << "\n\n\n";

            if (Auswahl == 1)
            {
                {
                    int SpielenMenue (Auswahl);
                }
            }

            else if (Auswahl == 2)
            {
                cout << "---------------------" << endl;
                cout << "Schlechte Noten in der Mathematik? Hier kannst du dich verbessern!\n";
                cout << "Trainiere indem du viele Rechnungen addierst, subtrahierst oder dividierst!\n";
                cout << "---------------------\n\n\n";
            }

            else if (Auswahl == 3)
            {
                cout << "Auf Wiedersehen!" << endl;
            }

            else
            {
                cout << "ERROR: Falsche Eingabe!" << endl;
                cout << "-----" << endl;
                cout << "\n\n\n";

                if (!cin.good())
                {
                    cin.clear();
                    cin.ignore();
                }
            } // else


    } // while


    return 0;
} // main


int SpielenMenue (int Auswahl)
{
    {
    // while-Schleife

    while (Auswahl != 4)
    {
    cout << "Schwierigkeitsgrad" << endl;
    cout << "------------------" << endl;
    cout << "1) Leicht" << endl;
    cout << "2) Mittel" << endl;
    cout << "3) Schwer" << endl;
    cout << "---" << endl;
    cout << "4) Beenden" << endl;
    cout << "-----" << endl;
    cout << "Deine Wahl: ";
    cin >> Auswahl;
    cout << "\n\n\n";

    {
        // Variablen

        //

        int Auswahl = 0;
        int Lebensenergie = 100;

        if (Auswahl == 1)
        {
            int SpielenLeicht (int Auswahl, int Lebensenergie);
        }

        else if (Auswahl == 2)
        {
            int SpielenMittel (int Auswahl, int Lebensenergie);
        }

        else if (Auswahl == 3)
        {
            int SpielenSchwer (int Auswahl, int Lebensenergie);
        }

        else if (Auswahl == 4)
        {
            cout << "Auf Wiedersehen!" << endl;
        }

        else
        {
            cout << "ERROR: Falsche Eingabe!" << endl;
            cout << "-----" << endl;
            cout << "\n\n\n";

            if (!cin.good())
            {
                cin.clear();
                cin.ignore();
            }
        } // else

    }
    } // while

    } // Das Ganze

    return Auswahl;
}

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

2

23.07.2008, 15:46

Das int gehört da nicht hin:

C-/C++-Quelltext

1
int SpielenMenue (Auswahl); 


Wenn du es so schreibst wird es soweit ich das überblickt als (fehlerhafte) Deklaration gewertet.

// €dit:
ne, anders, es wird als die Definition der Variable SpielenMenue vom Typ int gewertet, die den Wert von Auswahl erhält^^

Anonymous

unregistriert

3

23.07.2008, 15:52

Ja jetzt funktionierts! Danke!

4

23.07.2008, 15:54

Ich würde das ganze aber an deiner stelle etwas verkürzen mit einem switch - case Block.

Was dann etwa so aus sieht.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
switch (Auswahl)
{
    case (1):
       {
           blabla
       } break;
    case (2):
       {
           blabla
       } break;
};       

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

5

23.07.2008, 15:54

Kein Problem, solche miesen Fehler gibts halt manchmal :)

Viktor

Alter Hase

Beiträge: 533

Wohnort: Ludwigshafen

Beruf: Student

  • Private Nachricht senden

6

23.07.2008, 15:55

C-/C++-Quelltext

1
2
3
4
5
6
 if (Auswahl == 1) 
            { 
                { 
                    int SpielenMenue (Auswahl); 
                } 
            }


Die 2. eckigen Klammern sind übrigens unnötig

C-/C++-Quelltext

1
2
3
4
 if (Auswahl == 1) 
            { 
                    SpielenMenue (Auswahl); 
            }

reicht vollkommen aus

ps: meld dich mal, dann gehts weiter....

SilentDragon

Alter Hase

Beiträge: 530

Wohnort: Köln

Beruf: Student

  • Private Nachricht senden

7

23.07.2008, 15:56

Zitat von »"schaffy"«

Ich würde das ganze aber an deiner stelle etwas verkürzen mit einem switch - case Block.

Was dann etwa so aus sieht.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
switch (Auswahl)
{
    case (1):
       {
           blabla
       } break;
    case (2):
       {
           blabla
       } break;
};       


Das is ja eigentlich nur Quelltext Layout ich würde das benutzen an was man sich gewöhnt hat ;)
...

8

23.07.2008, 16:45

jo is richtig ich wollte aber auch mal eine andere möglichkeit zur schau stellen, weil ich die übersichtlicher finde. ;)

Werbeanzeige