Ayuda con if! Urgente!!
Publicado por Gramm (1 intervención) el 10/12/2017 01:53:23
Hola amigos, mi objetivo es hacer un juego de rpg con c++, y estoy practicando el sistema de combate. Se supone que si la variable character1 es igual a 1 y si la variable action es igual a 1, debería hacer 30 puntos de daño, pero en vez de eso hace 24. Creo que es un error con los if, creo que es porque el asignar un valor a una variable en un if no depende de si el comando if debe ser ejecutado, si es verdadero o no un if como sea asignará el valor a la variable, eso es lo que supongo. Si este fuera el caso, ¿cómo lo soluciono? Gracias.
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
#include <iostream>
using namespace std;
int main(){
int start;
cout<<"Do you want to start? \n 1 Yes"<< endl << endl;
cin>>start;
if(start = 1){
cout<<"1 = Catwoman - 2 = Batman ";
int character1;
int character2;
int action;
float agility1;
float life1;
float agility2;
float life2;
float damage1;
float damage2;
cout<<"\nChoose your character:\n";
cin>> character1; //Imaginemos que es 1
cout<<"\nChoose your enemy:\n";
cin>> character2;// Imaginemos que es 2
// Catwoman
if(character1 = 1){
agility1 = 2.00; /*Esta debería ser el valor de agility1*/
life1 = 100;
};
if(character2 = 1){
agility2 = 2.00;
life2 = 100;
// Batman
};
if(character1 = 2){
agility1 = 1.60; /* Creo que aqui es el problema*/
life1 = 140;
};
if(character2 = 2){
agility2 = 1.60;
life2 = 140;
};
while(life1 && life2 > 0){
cout<<"\n\nWhat you want to do?" << endl;
if(character1 = 1){
cout<<" 1 Scratch(damage) \n 2 Guard(defense)";
cin>>action;/* Imaginemos que es 1 todas las veces que se repita el while*/
if(action = 1){
damage1 = 15;
damage1 = damage1 * agility1;
}
}
cout<< endl <<"You did "<< damage1 /* Debería ser 30, pero desplega 24 */ << " points of damage." << endl;
life2 = life2 - damage1;
if(life2 > 0){
cout<<"Your enemy has "<< life2 << " health points!" << endl;}
if(life2 <= 0 ){
cout<<"You have defeated your enemy!";
}
}
}
}
Valora esta pregunta


0