Tach
Ich komme mit einem Fehler in meinem Programm nicht weiter und hoffe Ihr könnt mir weiterhelfen. Erst mal der 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
|
// player shoots at enemy
//
if (start == 1)
{
// choose weapon
//
do
{
cout << "\nZur Verfuegung stehende Energie: " << pshipPlayer->m_energy << endl;
cout << "Waehle Waffe" << endl;
cout << "1. Laser / Energiebedarf: " << pshipPlayer->m_Lenergy << endl;
cout << "2. Projektilwaffen / Energiebedarf: " << pshipPlayer->m_Penergy << endl;
cout << "3. Rakete / Energiebedarf: " << pshipPlayer->m_Renergy << endl;
cout << "\nAuswahl: ";
cin >> pshipPlayer->m_weapon;
// check if valid weapon has been chosen
//
if (pshipPlayer->m_weapon < 1 || pshipPlayer->m_weapon > 3)
cout << "\nUngueltige Eingabe" << endl;
// check if enough energy is available
//
if (pshipPlayer->m_weapon >= 1 || pshipPlayer->m_weapon <= 3)
{
if (pshipPlayer->m_weapon = 1)
weapon = pshipPlayer->m_Lenergy;
else if (pshipPlayer->m_weapon = 2)
weapon = pshipPlayer->m_Penergy;
else if (pshipPlayer->m_weapon = 3)
weapon = pshipPlayer->m_Renergy;
if (weapon > pshipPlayer->m_energy)
{
cout << "\nZu wenig Energie!" << endl;
pshipPlayer->m_weapon = 0;
}
}
} while (pshipPlayer->m_weapon < 1 || pshipPlayer->m_weapon > 3);
// shoot weapon
//
cout << "Waffe " << pshipPlayer->m_weapon << " abgefeuert!" << endl;
// AI defends
//
hit = AI(start, pshipPlayer, pshipEnemy);
// check if AI ship was hit
//
if (hit == true)
cout << "Feindliches Schiff getroffen! Seine Huelle ist runter auf " << pshipEnemy->m_hull << " Punkte." << endl;
else if (hit == false)
cout << "Feindliches Schiff leider nicht getroffen" << endl;
} // player shoots at enemy
|
So, wie man sieht kann der Spieler eine Waffe auswählen mit der er auf den Feind schiesst. Das Spiel prüft dann noch ob er eine gültige Auswahl getroffen hat und ob er genügend Energie hat.
Nun das Problem das ich nicht verstehe:
Wenn ich eine Auswahl ausserhalb von 1-3 treffe kommt wie beabsichtigt die Fehlermeldung dass dies nicht geht und ich kann eine neue Auswahl treffen. Allerdings schiesst das Spiel trotzdem auf den Gegner, und zwar immer mit Waffe 1. Wenn ich eine Zahl zwischen 1-3 eingebe, egal welche, rechnet das Programm auch immer mit Waffe 1. Woran zum Teufel liegt das? Es schnallt ja wenn ich einen ungültigen Wert eingebe, d.h. er speichert den Wert den ich eingebe in der Variablen. Trotzdem setzt er die Variable immer automatisch auf 1, egal was ich eingebe?!