Dev - C++ - Ayuda con if! Urgente!!

   
Vista:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con if! Urgente!!

Publicado por juanki (63 intervenciones) el 10/12/2017 10:49:27
Hola

Pues sí, tiens un error con los if:

1
if(start = 1){

Para comparar se usa == (doble signo igual) y tu estás usando solo =, por lo tanto es una asignación, no una comparación.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad