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

04.09.2008, 18:11

[Erledigt] Das Programm wiederholt sich, trotz der Funktion

Ich habe ein Programm geschrieben (Gefängnis), das jetzt ein Problem hat. Ich habe wirklich lange gesucht, (wie in Heiko KALISTA's Buch schon geschrieben) doch habe keine Lösung gefunden. Der Code sieht so aus:

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
#include <iostream>

using namespace std;
int Spielen (int Auswahl, int Lebensenergie);

int main ()
{
    // Variablen

    //

    int Auswahl = 0;
    int Lebensenergie = 100;

    while (Auswahl != 2)
    {
        cout << "GEFAENGNIS" << endl;
        cout << "~~~~~~~~~~" << endl;
        cout << "1) Spielen" << endl;
        cout << "2) Beenden" << endl;
        cout << "~~~~" << endl;
        cout << "Deine Wahl: ";
        cin >> Auswahl;
        cout << "\n\n\n";

        switch (Auswahl)
        {
        case (1):
            {
                Spielen (Auswahl, Lebensenergie);
            } break;

        case (2):
            {
            } break;

        default:
            {
                cout << "ERROR: Falsche Eingabe!";
                cout << "\n\n\n";

                if (cin.good ())
                {
                    cin.clear ();
                    cin.ignore ();
                }
            } break;
        } // switch

    } // while


    return 0;
} // main


int Spielen (int Auswahl, int Lebensenergie)
{
    while (Lebensenergie <= 0)
    {
        cout << "Traurig sitzt du im Gefaengnis, da du deine Frau ermordet hast..." << endl;
        cout  << "deprimiert kritzelst du mit einem Stueck Kreide den 100ten Strich" << endl;
        cout << "an die Wand. Da siehst du auf einmal ein Schluessel, mitten im W-" << endl;
        cout << "liegen. Du presst deine Wangen gegen das Gitter und schaust ob n-" << endl;
        cout << "iemand zuschaut. Du siehst keinen.\n" << endl;

        cout << "SCHLUESSEL NEHMEN?\t\tLebensenergie: " << Lebensenergie << endl;
        cout << "~~~~~~~~~~~~~~~~~~" << endl;
        cout << "1) Ja" << endl;
        cout << "2) Nein" << endl;
        cout << "~~~~" << endl;
        cout << "Deine Wahl: ";
        cin >> Auswahl;
        cout << "\n\n";

        switch (Auswahl)
        {
        case (1):
            {
                cout << "Leise nimmst du den Schluessel und sperrst die Gitternde" << endl;
                cout << "Tuer auf. Da kommen zwei Polizisten und schlagen dich m-" << endl;
                cout << "it einem Knuppel. Du tust dir weh. Du wurdest zurueck in" << endl;
                cout << "das Gefaengnis geschlagen\n" << endl;
                Lebensenergie -= 25;
            } break;

        default:
            {
                cout << "ERROR: Falsche Eingabe!" << endl;
                cout << "\n\n\n";
                
                if (cin.good ())
                {
                    cin.clear ();
                    cin.ignore ();
                }
            } break;

        } // switch

    } // while


    return Auswahl;
}


Nun will das Programm nicht in die Funktion springen, die ich geschrieben habe!! Kann mir da einer bitte Helfen? Wenn mehr Informationen notwendig sind, bitte melden. Danke.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

04.09.2008, 18:17

Was passier denn, wenn du 1 eingibst?
Beendet sich das Programm?

EDIT:
Habs getestet.
In die Funktion kommt er schon. (Benutz das nächste mal den Debugger)

Dann siehst du auch, wo das Problem liegt.

C-/C++-Quelltext

1
while (Lebensenergie <= 0)

flux

Treue Seele

  • Private Nachricht senden

3

04.09.2008, 18:21

Doch tut sie, aber wohl nicht in die while Schleife,

C-/C++-Quelltext

1
2
3
4
int Spielen (int Auswahl, int Lebensenergie)
{
    while (Lebensenergie <= 0)
    { 

weil die Lebensenergie am Start 100 ist und somit größer als 0.

Anonymous

unregistriert

4

04.09.2008, 18:28

Dankesehr!!

Werbeanzeige