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

11

25.04.2009, 15:26

while (1=2) ?!

bitte while (true); benutzen, da 1=2 blödsinn ist.

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

12

25.04.2009, 16:25

Ich hab es nur mal ganz kurz überflogen und muss sagen, dass mir das folgende gar nicht gefällt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
// Variablen zum weiterfolgenden berechnen

int gegnerangriff2;
int duangriff2;
float gegnergesamtschaden2;
float dugesamtschaden;
float duRegeneration2;
float gegnerRegeneration2;
float duLebensenergie2;
float gegnerLebensenergie2;
float dugesamtschaden2; 

Meiner Meinung nach sollte man keine Variablen haben, die man durchnummeriert. Da ist dann was faul.
Vor allem brauchst du sie alle gar nicht.
Beispiel:

C-/C++-Quelltext

1
duLebensenergie2 = (duLebensenergie - gegnergesamtschaden2) + duRegeneration2; 

Das ist unnötig. Nutze doch einfach die Lebensenergie1

C-/C++-Quelltext

1
duLebensenergie = duLebensenergie - gegnergesamtschaden + duRegeneration; 

Und auch die anderen Variablen: Setze doch einfach neue Werte für die Variablen. So lange sie nicht const sind, ist das ja kein Problem. Wenn sie const sind, dann sind sie ungerechtfertigterweise const ;)

Schappy

Frischling

  • »Schappy« ist der Autor dieses Themas

Beiträge: 17

Wohnort: Scheeßel

Beruf: Schüler

  • Private Nachricht senden

13

25.04.2009, 16:46

Ich komme gerade nicht weiter.. *leider*

ich habe 2 Syntaxfehler... nun verstehe ich gerade nicht wieso.

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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
#include <iostream> 

using namespace std; 


int main () 

{ 


    // Menüvariablen 

    char menueAuswahl; 


    // Menü 

    cout << "Möchten Sie einen (K)ampf führen, oder das Tunier (v)erlassen und wegrennen?" << endl; 
    cin >> menueAuswahl; 

    switch (menueAuswahl) 
        {
            case('v'): 
              case('V'): 
            {  
                cout << "Tunier verlassen" << endl; 
            } break;

                {
                    case ('k'):
                        case ('K'):
                    { 
                        // Variablen 



float Angriffsschadengegner; 
float Angriffsschadendu; 
int Level; 
float Lebensenergievoll; 
float duLebensenergie; 
int gegnerangriff; 
int duangriff; 
int Gegnerlevel; 
float Gegnerlebensenergie; 
float gegnergesamtschaden; 
float dugesamtschaden; 
float gegnerLebensenergie; 
float duRegeneration; 
float gegnerRegeneration; 


//Const - Variablen benennen 


const float Lebensenergielv1 = 35.57231f; 
const float Angriffsschadenprolevel = 2.87831f; 
const float Regenerationszahl = 0.233f; 


// Lebensenergierechnung 


Level = 1; 
cout << "Welches Level bist du: ?" << endl; 
cin >> Level; 


Lebensenergievoll = Level * Lebensenergielv1; 

cout << "Du besitzt insgesamt: " << Lebensenergievoll << " Lebenspunkte" << endl; 

Gegnerlevel = 1; 
cout << "welches Level ist dein Gegner: ?" << endl; 
cin >> Gegnerlevel; 

Gegnerlebensenergie = Gegnerlevel * Lebensenergielv1; 
cout << "Der Gegner besitzt " << Gegnerlebensenergie << " Lebenspunkte" << endl; 



// Angriffsrechnung 


// Angriffsschleifenvariable

int Rundenanzahl = 1;

// Angriffsschleife

for (int i=0 ; i<Rundenanzahl ; i++)
    {
    gegnerangriff = 1; 
    cout << "Wie oft greift der Gegner an: ?" << endl; 
    cin >> gegnerangriff; 


    duangriff = 1; 
    cout << "Wie oft greifst du an: ?" << endl; 
    cin >> duangriff; 

    Angriffsschadengegner = Gegnerlevel * Angriffsschadenprolevel; 

    Angriffsschadendu = Level * Angriffsschadenprolevel; 

    gegnergesamtschaden = 0; 
    gegnergesamtschaden = gegnerangriff * Angriffsschadengegner; 

    dugesamtschaden = 0; 
    dugesamtschaden = duangriff * Angriffsschadendu; 
    
    cout << "Du machst pro Angriff... " << Angriffsschadendu <<" Schaden. du greifst " << duangriff << " mal an" << endl; 
    cout << "Du machst bei " << duangriff << " Angriff(en), insgesamt " << dugesamtschaden << " Schaden" << endl; 
    
    cout << "Dein Gegner macht pro Angriff... " << Angriffsschadengegner << " Schaden. Er greift " << gegnerangriff << " mal an." << endl; 
    cout << "Dein Gegner macht bei " << gegnerangriff << " Angriff(en), insgesamt " << gegnergesamtschaden << " Schaden" << endl; 
    
    
    // Regeneration 

    
    duRegeneration = 1; 
    // pro Angriff 

    duRegeneration = gegnerangriff * Level * Regenerationszahl; 
    
    gegnerRegeneration = 1; 
    // pro Angriff 

    gegnerRegeneration = duangriff * Gegnerlevel * Regenerationszahl; 


    duLebensenergie = (Lebensenergievoll - gegnergesamtschaden) + duRegeneration; 
    gegnerLebensenergie = (Gegnerlebensenergie - dugesamtschaden) + gegnerRegeneration; 


    cout << "Dein Regenerationswert ist " << duRegeneration << endl; 
    cout <<"Du besitzt jetzt nach " << gegnerangriff << " Angriff(en), noch " << duLebensenergie << " Lebenspunkte" << endl; 


    cout << "Dein Gegnersregenerationswert ist " << gegnerRegeneration << endl; 
    cout << "Dein Gegner besitzt jetzt nach " << duangriff << " Angriff(en), noch " << gegnerLebensenergie << " Lebenspunkte" << endl; 



    // Spieler oder Gegener - Tot 


    if (duLebensenergie <= 0) 

        { 
            cout << "\n \n Du bist tot. Deine Lebenspunkte sind erloschen." << endl; 
        } 

    else if (gegnerLebensenergie <= 0) 
        { 
            cout << "\n \n Du hast deinen Feind getoetet" << endl; 
        } 

    else if ((duLebensenergie > 0) || (gegnerLebensenergie > 0))

        {  
            cout << "\n \n beide Spieler leben noch \n \n" << endl; 
            int Eingabe;
            cout << "Möchten Sie erneut angreifen? / Ja oder Nein" << endl;
            cin >> Eingabe;
            {
                if ((Eingabe = 'Ja') || (Eingabe = 'ja') || (Eingabe = 'JA'))
                {
                    do (Rundenanzahl +=1);
                } // Syntaxfehler 1

                if ((Eingabe = 'Nein') || (Eingabe = 'nein') || (Eingabe = 'NEIN'))
                {
                    do (Rundenanzahl +=0);
                } // Syntaxfehler 2

            }
        }
    }
}
} 
int stop; 
cout << "\n \nBerechnung fertig, Beliebes Eingeben und mit Enter bestätigen um das Programm zu beenden" << endl; 
cin >> stop;
}
// Menü verlassen 


int stop;
cout << "Sie haben einen falschen Wert eingegeben, bitte starten sie das Programm neu" << endl;
cin >> stop;

return 0; 
}


--------------------Konfiguration: Lebensenergie bei Angriff - Win32 Debug--------------------
Kompilierung läuft...
Lebensenergie bei Angriff.cpp
C:\Dokumente und Einstellungen\Erkan\Desktop\Lebensenergie bei Angriff.cpp(159) : error C2059: Syntaxfehler : '}'
C:\Dokumente und Einstellungen\Erkan\Desktop\Lebensenergie bei Angriff.cpp(163) : error C2059: Syntaxfehler : '}'
Fehler beim Ausführen von cl.exe.

Lebensenergie bei Angriff.exe - 2 Fehler, 0 Warnung(en)

Nun verstehe ich dies nicht. Bitte erklärt mir, wieso diese beiden stellen Syntaxfehler sind.
Eine if muss doch direkt nachdem sie Geschrieben wurde mit { anfangen und mit } aufhören?
beispiel ?

C-/C++-Quelltext

1
2
3
4
if (...)
{
..
}



Liebe Grüße Michi


p.s. Die Rechnungen sind zur Zeit nicht richtig. Nach wiederholung der Schleife fangen sie von neu an. Bitte dies nicht beachten, ich werde dies zu einem späteren Zeitpunkt bearbeiten.
Mfg. Michael Herker :D

14

25.04.2009, 16:50

das ist nicht der fehler, sondern wo ein do ist, muss auch ein while sein - und das felht an beiden stellen, bzw. eigentlich ist das do überflüssig, aber das weiß der compiler ja nicht ;)

15

25.04.2009, 17:00

PCShadow hat die Syntaxfehler bereits beschrieben, aber es gibt noch was, was der Compiler nicht erkennt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
                if ((Eingabe = 'Ja') || (Eingabe = 'ja') || (Eingabe = 'JA')) 
                { 
                    do (Rundenanzahl +=1); 
                } // Syntaxfehler 1 

                if ((Eingabe = 'Nein') || (Eingabe = 'nein') || (Eingabe = 'NEIN')) 
                { 
                    do (Rundenanzahl +=0); 
                } // Syntaxfehler 2 


Du machst hier überall Zuweisungen (=), möchtest aber eigentlich den Vergleichsoperator (==)!
edit: Außerdem vergleichst du einen Integer (Eingabe) mit einem String!
edit2: Die Strings sind nichteinmal in double-quotes...

Schappy

Frischling

  • »Schappy« ist der Autor dieses Themas

Beiträge: 17

Wohnort: Scheeßel

Beruf: Schüler

  • Private Nachricht senden

16

25.04.2009, 17:06

Verstanden und verändert!

Da ich umbedingt eine do - while drin haben möchte, habe ich dies so verändert.

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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#include <iostream> 

using namespace std; 


int main () 

{ 


    // Menüvariablen 

    char menueAuswahl; 


    // Menü 

    cout << "Möchten Sie einen (K)ampf führen, oder das Tunier (v)erlassen und wegrennen?" << endl; 
    cin >> menueAuswahl; 

    switch (menueAuswahl) 
        {
            case('v'): 
              case('V'): 
            {  
                cout << "Tunier verlassen" << endl; 
            } break;

                {
                    case ('k'):
                        case ('K'):
                    { 
                        // Variablen 



float Angriffsschadengegner; 
float Angriffsschadendu; 
int Level; 
float Lebensenergievoll; 
float duLebensenergie; 
int gegnerangriff; 
int duangriff; 
int Gegnerlevel; 
float Gegnerlebensenergie; 
float gegnergesamtschaden; 
float dugesamtschaden; 
float gegnerLebensenergie; 
float duRegeneration; 
float gegnerRegeneration; 


//Const - Variablen benennen 


const float Lebensenergielv1 = 35.57231f; 
const float Angriffsschadenprolevel = 2.87831f; 
const float Regenerationszahl = 0.233f; 


// Lebensenergierechnung 


Level = 1; 
cout << "Welches Level bist du: ?" << endl; 
cin >> Level; 


Lebensenergievoll = Level * Lebensenergielv1; 

cout << "Du besitzt insgesamt: " << Lebensenergievoll << " Lebenspunkte" << endl; 

Gegnerlevel = 1; 
cout << "welches Level ist dein Gegner: ?" << endl; 
cin >> Gegnerlevel; 

Gegnerlebensenergie = Gegnerlevel * Lebensenergielv1; 
cout << "Der Gegner besitzt " << Gegnerlebensenergie << " Lebenspunkte" << endl; 



// Angriffsrechnung 


// Angriffsschleifenvariable

int Rundenanzahl = 1;

// Angriffsschleife

for (int i=0 ; i<Rundenanzahl ; i++)
    {
    gegnerangriff = 1; 
    cout << "Wie oft greift der Gegner an: ?" << endl; 
    cin >> gegnerangriff; 


    duangriff = 1; 
    cout << "Wie oft greifst du an: ?" << endl; 
    cin >> duangriff; 

    Angriffsschadengegner = Gegnerlevel * Angriffsschadenprolevel; 

    Angriffsschadendu = Level * Angriffsschadenprolevel; 

    gegnergesamtschaden = 0; 
    gegnergesamtschaden = gegnerangriff * Angriffsschadengegner; 

    dugesamtschaden = 0; 
    dugesamtschaden = duangriff * Angriffsschadendu; 
    
    cout << "Du machst pro Angriff... " << Angriffsschadendu <<" Schaden. du greifst " << duangriff << " mal an" << endl; 
    cout << "Du machst bei " << duangriff << " Angriff(en), insgesamt " << dugesamtschaden << " Schaden" << endl; 
    
    cout << "Dein Gegner macht pro Angriff... " << Angriffsschadengegner << " Schaden. Er greift " << gegnerangriff << " mal an." << endl; 
    cout << "Dein Gegner macht bei " << gegnerangriff << " Angriff(en), insgesamt " << gegnergesamtschaden << " Schaden" << endl; 
    
    
    // Regeneration 

    
    duRegeneration = 1; 
    // pro Angriff 

    duRegeneration = gegnerangriff * Level * Regenerationszahl; 
    
    gegnerRegeneration = 1; 
    // pro Angriff 

    gegnerRegeneration = duangriff * Gegnerlevel * Regenerationszahl; 


    duLebensenergie = (Lebensenergievoll - gegnergesamtschaden) + duRegeneration; 
    gegnerLebensenergie = (Gegnerlebensenergie - dugesamtschaden) + gegnerRegeneration; 


    cout << "Dein Regenerationswert ist " << duRegeneration << endl; 
    cout <<"Du besitzt jetzt nach " << gegnerangriff << " Angriff(en), noch " << duLebensenergie << " Lebenspunkte" << endl; 


    cout << "Dein Gegnersregenerationswert ist " << gegnerRegeneration << endl; 
    cout << "Dein Gegner besitzt jetzt nach " << duangriff << " Angriff(en), noch " << gegnerLebensenergie << " Lebenspunkte" << endl; 



    // Spieler oder Gegener - Tot 


    if (duLebensenergie <= 0) 

        { 
            cout << "\n \n Du bist tot. Deine Lebenspunkte sind erloschen." << endl; 
        } 

    else if (gegnerLebensenergie <= 0) 
        { 
            cout << "\n \n Du hast deinen Feind getoetet" << endl; 
        } 

    else if ((duLebensenergie > 0) || (gegnerLebensenergie > 0))

        {  
        cout << "\n \n beide Spieler leben noch \n \n" << endl; 
        int Eingabe;
        cout << "Möchten Sie erneut angreifen? / Ja oder Nein" << endl;
        cin >> Eingabe;
        while ((Eingabe == 'Ja') || (Eingabe == 'ja') || (Eingabe == 'JA'))
            {
                do (Rundenanzahl +=1);
            } // Syntaxfehler

        }
    }
}
} 
int stop; 
cout << "\n \nBerechnung fertig, Beliebes Eingeben und mit Enter bestätigen um das Programm zu beenden" << endl; 
cin >> stop;
}
// Menü verlassen 


int stop;
cout << "Sie haben einen falschen Wert eingegeben, bitte starten sie das Programm neu" << endl;
cin >> stop;

return 0; 
}


--------------------Konfiguration: Lebensenergie bei Angriff - Win32 Debug--------------------
Kompilierung läuft...
Lebensenergie bei Angriff.cpp
C:\Dokumente und Einstellungen\Erkan\Desktop\Lebensenergie bei Angriff.cpp(158) : error C2059: Syntaxfehler : '}'
Fehler beim Ausführen von cl.exe.

Lebensenergie bei Angriff.exe - 1 Fehler, 0 Warnung(en)


Die Zuweisung wurde zu einem vergleich umgeändert..
"Wo do ist, ist jetzt auch ein while!"

C-/C++-Quelltext

1
2
3
4
while ((Eingabe == 'Ja') || (Eingabe == 'ja') || (Eingabe == 'JA'))
            {
                do (Rundenanzahl +=1);
            }


Nun wieso sagt er mir, das ich immernoch einen Syntaxfehler habe?

C-/C++-Quelltext

1
2
3
4
while (..)
{
do (..)
}



edit:
Strings? ' ?[/cpp]
Mfg. Michael Herker :D

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

17

25.04.2009, 17:09

probier es mal mit:

C-/C++-Quelltext

1
2
do {
} while(...)


Was denkst du egtl, dass do-while macht? ;)

18

25.04.2009, 17:19

Zitat

edit:
Strings?

z.B. "mipmip"
Diese werden in Anführungsstrichen geschrieben, nicht nur in einfachen Hochkommas (?) wie z.B. bei char:

C-/C++-Quelltext

1
char nur_in_einfachen_hochkommas = 's';


Wenn das im Buch noch nicht behandelt wurde, dann verwende am besten einzelne Zeichen, also j oder n (bzw. J oder N) vom Typ char.

Schappy

Frischling

  • »Schappy« ist der Autor dieses Themas

Beiträge: 17

Wohnort: Scheeßel

Beruf: Schüler

  • Private Nachricht senden

19

25.04.2009, 17:35

Okay.. Einige Seiten weiter steht do-while nochmals erklärt. Laut dieser erklärung kann ich do - while - Schleifen dafür einsetzen um einen Startwert herunter zu zählen.. Denke aber auch dafür, das ich solange eine Schleife laufen lassen kann, bis die Leben eines Spielers leer sind.
gut-gut!

also komm ich zurück auf if und else if...

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    else if ((duLebensenergie > 0) || (gegnerLebensenergie > 0))

        {  
        cout << "\n \n beide Spieler leben noch \n \n" << endl; 
        cout << "Möchten Sie erneut angreifen? / Ja oder Nein" << endl;
        int Eingabe;
        cin >> Eingabe;
        if ((Eingabe == 'Ja') || (Eingabe == 'ja') || (Eingabe == 'JA'))
            {
                Rundenanzahl +=1;
            }
        else if  ((Eingabe == 'Nein') || (Eingabe == 'nein') || (Eingabe == 'NEIN'))
        {
            Rundenanzahl -= 1;
        }
        }


dies habe ich statt der "do-while Schleife" hinein gebaut...
Nun folgendes problem...
Das Programm beendet mir das Fenster und fängt nicht von vorn an, wie ich es mir gewünscht hatte.


Um das aber alles gut Funktioniert (mit den anderen if und else if die weiter oben zu sehen sind) musste ich die rundenanzahl auf 2 erhöhen und bei den unteren Bedingungen immer eine rundenanzahl wegnehmen damit das Programm beendet wird.

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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#include <iostream> 

using namespace std; 


int main () 

{ 


    // Menüvariablen 

    char menueAuswahl; 


    // Menü 

    cout << "Möchten Sie einen (K)ampf führen, oder das Tunier (v)erlassen und wegrennen?" << endl; 
    cin >> menueAuswahl; 

    switch (menueAuswahl) 
        {
            case('v'): 
              case('V'): 
            {  
                cout << "Tunier verlassen" << endl; 
            } break;

                {
                    case ('k'):
                        case ('K'):
                    { 
                        // Variablen 



float Angriffsschadengegner; 
float Angriffsschadendu; 
int Level; 
float Lebensenergievoll; 
float duLebensenergie; 
int gegnerangriff; 
int duangriff; 
int Gegnerlevel; 
float Gegnerlebensenergie; 
float gegnergesamtschaden; 
float dugesamtschaden; 
float gegnerLebensenergie; 
float duRegeneration; 
float gegnerRegeneration; 


//Const - Variablen benennen 


const float Lebensenergielv1 = 35.57231f; 
const float Angriffsschadenprolevel = 2.87831f; 
const float Regenerationszahl = 0.233f; 


// Lebensenergierechnung 


Level = 1; 
cout << "Welches Level bist du: ?" << endl; 
cin >> Level; 


Lebensenergievoll = Level * Lebensenergielv1; 

cout << "Du besitzt insgesamt: " << Lebensenergievoll << " Lebenspunkte" << endl; 

Gegnerlevel = 1; 
cout << "welches Level ist dein Gegner: ?" << endl; 
cin >> Gegnerlevel; 

Gegnerlebensenergie = Gegnerlevel * Lebensenergielv1; 
cout << "Der Gegner besitzt " << Gegnerlebensenergie << " Lebenspunkte" << endl; 



// Angriffsrechnung 


// Angriffsschleifenvariable

int Rundenanzahl = 2;

// Angriffsschleife

for (int i=0 ; i<Rundenanzahl ; i++)
    {
    gegnerangriff = 1; 
    cout << "Wie oft greift der Gegner an: ?" << endl; 
    cin >> gegnerangriff; 


    duangriff = 1; 
    cout << "Wie oft greifst du an: ?" << endl; 
    cin >> duangriff; 

    Angriffsschadengegner = Gegnerlevel * Angriffsschadenprolevel; 

    Angriffsschadendu = Level * Angriffsschadenprolevel; 

    gegnergesamtschaden = 0; 
    gegnergesamtschaden = gegnerangriff * Angriffsschadengegner; 

    dugesamtschaden = 0; 
    dugesamtschaden = duangriff * Angriffsschadendu; 
    
    cout << "Du machst pro Angriff... " << Angriffsschadendu <<" Schaden. du greifst " << duangriff << " mal an" << endl; 
    cout << "Du machst bei " << duangriff << " Angriff(en), insgesamt " << dugesamtschaden << " Schaden" << endl; 
    
    cout << "Dein Gegner macht pro Angriff... " << Angriffsschadengegner << " Schaden. Er greift " << gegnerangriff << " mal an." << endl; 
    cout << "Dein Gegner macht bei " << gegnerangriff << " Angriff(en), insgesamt " << gegnergesamtschaden << " Schaden" << endl; 
    
    
    // Regeneration 

    
    duRegeneration = 1; 
    // pro Angriff 

    duRegeneration = gegnerangriff * Level * Regenerationszahl; 
    
    gegnerRegeneration = 1; 
    // pro Angriff 

    gegnerRegeneration = duangriff * Gegnerlevel * Regenerationszahl; 


    duLebensenergie = (Lebensenergievoll - gegnergesamtschaden) + duRegeneration; 
    gegnerLebensenergie = (Gegnerlebensenergie - dugesamtschaden) + gegnerRegeneration; 


    cout << "Dein Regenerationswert ist " << duRegeneration << endl; 
    cout <<"Du besitzt jetzt nach " << gegnerangriff << " Angriff(en), noch " << duLebensenergie << " Lebenspunkte" << endl; 


    cout << "Dein Gegnersregenerationswert ist " << gegnerRegeneration << endl; 
    cout << "Dein Gegner besitzt jetzt nach " << duangriff << " Angriff(en), noch " << gegnerLebensenergie << " Lebenspunkte" << endl; 



    // Spieler oder Gegener - Tot 


    if (duLebensenergie <= 0) 

        { 
        Rundenanzahl -= 1;
        cout << "\n \n Du bist tot. Deine Lebenspunkte sind erloschen." << endl; 
        } 

    else if (gegnerLebensenergie <= 0) 
        { 
        Rundenanzahl -= 1;
        cout << "\n \n Du hast deinen Feind getoetet" << endl; 

        } 

    else if ((duLebensenergie > 0) || (gegnerLebensenergie > 0))

        {  
        cout << "\n \n beide Spieler leben noch \n \n" << endl; 
        cout << "Möchten Sie erneut angreifen? / Ja oder Nein" << endl;
        int Eingabe;
        cin >> Eingabe;
        if ((Eingabe == 'Ja') || (Eingabe == 'ja') || (Eingabe == 'JA'))
            {
                Rundenanzahl +=1;
            }
        else if  ((Eingabe == 'Nein') || (Eingabe == 'nein') || (Eingabe == 'NEIN'))
        {
            Rundenanzahl -= 1;
        }
        }
    }
}
} 
}
// Menü verlassen 


int stop;
cout << "Funktion beendet. Bitte starten sie das Programm neu" << endl;
cin >> stop;

return 0; 
}

--------------------Konfiguration: Lebensenergie bei Angriff - Win32 Debug--------------------
Kompilierung läuft...
Lebensenergie bei Angriff.cpp
Linker-Vorgang läuft...

Lebensenergie bei Angriff.exe - 0 Fehler, 0 Warnung(en)
Mfg. Michael Herker :D

Duji-Buji

Frischling

Beiträge: 20

Wohnort: Osnabrück

  • Private Nachricht senden

20

25.04.2009, 20:20

Schnon wieder das Problem, dass du ein Integer mit einerm String vergleichst:

C-/C++-Quelltext

1
2
3
        int Eingabe;
        cin >> Eingabe;
        if ((Eingabe == 'Ja') || (Eingabe == 'ja') || (Eingabe == 'JA')) 

Ich glaub zwar nicht, dass das das Problem ist, aber richtig ist es nicht. Außerdem musst du Strings meines wissens nicht in ' ... ' machen sondern in " ... ". ' kann immer nur Zeichen benutzten.
MfG
PS: Mach mal die ganzen unnötigen Klammern weg. Denn die benötigst du da nicht und machen das ganze nur unübersichtlicher.

Werbeanzeige