Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problemas con C++

Estas en el tema de problemas con C++ en el foro de C/C++ en Foros del Web. Hola recien estoy empezando con c++ y tengo dos problemas en este codigo 1º No me entra a los if 2º Los numeros que me ...
  #1 (permalink)  
Antiguo 21/05/2012, 17:10
 
Fecha de Ingreso: mayo-2012
Ubicación: Santa Fe
Mensajes: 10
Antigüedad: 12 años, 6 meses
Puntos: 1
problemas con C++

Hola recien estoy empezando con c++ y tengo dos problemas en este codigo

1º No me entra a los if
2º Los numeros que me genera al azar son los mismo en el ATAQUE DEL PRIMER JUGADOR Y EL ATAQUE DEL SEGUNDO JUGADOR

pido ayuda


aca el codigo




#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;

int main(int argc, char *argv[]) {

int a=0,b=0,c=0,d=0,vidaA=100,vidaB=100,golpe=0,defens a=0,diferencia=0;

cout<<"\t***---*** Bienvenido a la aplicacion ***---***\n\n";
cout<<"\t\t *** BATALLA RPG ***\n\n";

while(vidaA>0 && vidaB>0){

srand(time(NULL)); //Inicializando los Rand()
a=1+rand()%6;
b=1+rand()%6;
c=1+rand()%6;
d=1+rand()%6;

cout<<"**Ataque del jugador 1**\n\n"; //Primer ataque
golpe=1*a+1*b+3;
defensa=1*c+1*d+1;

if(golpe>defensa){
diferencia=golpe-defensa;
vidaB-=diferencia;
}
else
cout<<"El jugador 1 resistio el ataque\n\n";

cout<<"El jugador 1 produjo un golpe de "<<golpe<<"\n\n";
cout<<"La defensa del jugador 2 fue de "<<defensa<<"\n\n";
cout<<"El jugador 1 produjo un danio de "<<diferencia<<"\n\n";
cout<<"La vida del jugador 2 ahora es de "<<vidaB<<"\n\n";
system("pause");
system("cls");

cout<<"**Ataque del jugador 2**\n\n"; //Segundo ataque
golpe=1*b+1*a+3;
defensa=1*c+1*d+1;
diferencia=golpe-defensa;

if(golpe>defensa){
diferencia=golpe-defensa;
vidaA-=diferencia;
}
else
cout<<"El jugador 1 resistio el ataque\n\n";

cout<<"El jugador 2 produjo un golpe de "<<golpe<<"\n\n";
cout<<"La defensa del jugador 1 fue de "<<defensa<<"\n\n";
cout<<"El jugador 2 produjo un danio de "<<diferencia<<"\n\n";
cout<<"La vida del jugador 1 ahora es de "<<vidaA<<"\n\n";
system("pause");
system("cls");
}

return 0;
}
  #2 (permalink)  
Antiguo 21/05/2012, 17:52
Avatar de W_NEMESIS  
Fecha de Ingreso: mayo-2012
Ubicación: pasto
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problemas con C++

hola mi amigo, no entiendo bien el problema... describleo mejor, aun asi, ensaya este y dime como te fue :)

trata de usar highlight para dejar mejor el codigo en tus dudas:

Código c++:
Ver original
  1. #include <iostream>
  2. #include <time.h>
  3. #include <stdlib.h>
  4. using namespace std;
  5.  
  6. int a=0,b=0,c=0,d=0,vidaA=100,vidaB=100,golpe=0,defensa=0,diferencia=0;
  7.  
  8. int main(int argc, char *argv[]) {
  9.  
  10.  
  11. cout<<"\t***---*** Bienvenido a la aplicacion ***---***\n\n";
  12. cout<<"\t\t *** BATALLA RPG ***\n\n";
  13.  
  14. while(vidaA>0 && vidaB>0){
  15.  
  16. srand(time(NULL)); //Inicializando los Rand()
  17. a=1+rand()%6;
  18. b=1+rand()%6;
  19. c=1+rand()%6;
  20. d=1+rand()%6;
  21.  
  22. cout<<"**Ataque del jugador 1**\n\n"; //Primer ataque
  23. golpe=1*a+1*b+3;
  24. defensa=1*c+1*d+1;
  25.  
  26. if(golpe>defensa)
  27. {
  28. diferencia=golpe-defensa;
  29. vidaB-=diferencia;
  30. }
  31. else
  32. {
  33. cout<<"El jugador 1 resistio el ataque\n\n";
  34. cout<<"El jugador 1 produjo un golpe de "<<golpe<<"\n\n";
  35. cout<<"La defensa del jugador 2 fue de "<<defensa<<"\n\n";
  36. cout<<"El jugador 1 produjo un danio de "<<diferencia<<"\n\n";
  37. cout<<"La vida del jugador 2 ahora es de "<<vidaB<<"\n\n";
  38. system("pause");
  39. system("cls");
  40. }
  41. cout<<"**Ataque del jugador 2**\n\n"; //Segundo ataque
  42. golpe=1*b+1*a+3;
  43. defensa=1*c+1*d+1;
  44. diferencia=golpe-defensa;
  45.  
  46. if(golpe>defensa){
  47. diferencia=golpe-defensa;
  48. vidaA-=diferencia;
  49. }
  50. else
  51. {
  52. cout<<"El jugador 1 resistio el ataque\n\n";
  53. cout<<"El jugador 2 produjo un golpe de "<<golpe<<"\n\n";
  54. cout<<"La defensa del jugador 1 fue de "<<defensa<<"\n\n";
  55. cout<<"El jugador 2 produjo un danio de "<<diferencia<<"\n\n";
  56. cout<<"La vida del jugador 1 ahora es de "<<vidaA<<"\n\n";
  57. system("pause");
  58. system("cls");
  59. }
  60.  
  61. return 0;
  62. }
  #3 (permalink)  
Antiguo 21/05/2012, 18:06
 
Fecha de Ingreso: mayo-2012
Ubicación: Santa Fe
Mensajes: 10
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problemas con C++

hola el programa es algo asi son dos personajes que pelean....

primero golpea uno y luego el otro..

el problema mio es que no me entra a los if... no se porque

y el segundo problema es que siempre los daños son iguales en ambos personajes, es decir genera numeros aleatorios , pero a,b,c,d son iguales.... cuando quiero que esto no se de......

volviendo hablar de las estructuras no solo tengo problemas de este tipo en este ejercicio , sino que en otros me pasa lo mismo MI CODIGO NO ENTRA A LAS ESTRUCTURAS O LAS PASA DE LARGO... seguramente algo estoy haciendo mal.. o no aclaro algooo

ayudame
  #4 (permalink)  
Antiguo 21/05/2012, 18:11
Avatar de W_NEMESIS  
Fecha de Ingreso: mayo-2012
Ubicación: pasto
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problemas con C++

ok... ya entendi, dame unos minutos y veo q le hago
  #5 (permalink)  
Antiguo 21/05/2012, 18:17
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 13 años
Puntos: 94
Respuesta: problemas con C++

Hola! q raro no veo nada malo, a exepcion del srand. Yo cuando lo uso solo lo inicializo una sola vez, ponelo antes del while a ver q pasa

Saludos
  #6 (permalink)  
Antiguo 21/05/2012, 18:27
Avatar de W_NEMESIS  
Fecha de Ingreso: mayo-2012
Ubicación: pasto
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problemas con C++

my friend helo aqui:

Código c++:
Ver original
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8. int vidaA=100,vidaB=100;
  9.  
  10. cout<<"\t***---*** Bienvenido a la aplicacion ***---***\n\n";
  11. cout<<"\t\t *** BATALLA RPG ***\n\n";
  12.  
  13. while(vidaA>0 && vidaB>0){
  14.              
  15.     int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,golpe=0,defensa=0,diferencia=0;
  16.     a=1+rand()%6;
  17.     b=1+rand()%6;
  18.     c=1+rand()%6;
  19.     d=1+rand()%6;
  20.     e=1+rand()%6;
  21.     f=1+rand()%6;
  22.     g=1+rand()%6;
  23.     h=1+rand()%6;
  24.    
  25.     cout<<"**Ataque del jugador 1**\n\n"; //Primer ataque
  26.     golpe=1*a+1*b+3;
  27.     defensa=1*c+1*d+1;
  28.    
  29.     if(golpe>defensa)
  30.     {
  31.         diferencia=golpe-defensa;
  32.         vidaB-=diferencia;
  33.     }
  34.     else
  35.     {
  36.         cout<<"El jugador 1 resistio el ataque\n\n";
  37.         cout<<"El jugador 1 produjo un golpe de "<<golpe<<"\n\n";
  38.         cout<<"La defensa del jugador 2 fue de "<<defensa<<"\n\n";
  39.         cout<<"El jugador 1 produjo un danio de "<<diferencia<<"\n\n";
  40.         cout<<"La vida del jugador 2 ahora es de "<<vidaB<<"\n\n";
  41.         system("pause");
  42.         system("cls");
  43.     }
  44.    
  45.     cout<<"**Ataque del jugador 2**\n\n"; //Segundo ataque
  46.     golpe=1*f+1*e+3;
  47.     defensa=1*h+1*g+1;
  48.     diferencia=golpe-defensa;
  49.    
  50.     if(golpe>defensa)
  51.     {
  52.         diferencia=golpe-defensa;
  53.         vidaA-=diferencia;
  54.     }
  55.     else
  56.     {
  57.         cout<<"El jugador 1 resistio el ataque\n\n";
  58.         cout<<"El jugador 2 produjo un golpe de "<<golpe<<"\n\n";
  59.         cout<<"La defensa del jugador 1 fue de "<<defensa<<"\n\n";
  60.         cout<<"El jugador 2 produjo un danio de "<<diferencia<<"\n\n";
  61.         cout<<"La vida del jugador 1 ahora es de "<<vidaA<<"\n\n";
  62.         system("pause");
  63.         system("cls");
  64.     }
  65. }
  66. if (vidaA<1)
  67. {
  68.    cout<<"el jugador 2 ha ganado"<<endl;
  69. }
  70. else
  71. {
  72.      cout<<"el jugador 1 ha ganado"<<endl;
  73. }
  74. system("PAUSE");
  75. return EXIT_SUCCESS;
  76. }
  #7 (permalink)  
Antiguo 21/05/2012, 18:28
 
Fecha de Ingreso: mayo-2012
Ubicación: Santa Fe
Mensajes: 10
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problemas con C++

pero fijate que si lo pones en un compliador los no entran a los if
  #8 (permalink)  
Antiguo 21/05/2012, 18:40
 
Fecha de Ingreso: mayo-2012
Ubicación: Santa Fe
Mensajes: 10
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problemas con C++

gracias por fijarteeee nemesis ;)
  #9 (permalink)  
Antiguo 22/05/2012, 09:11
Avatar de W_NEMESIS  
Fecha de Ingreso: mayo-2012
Ubicación: pasto
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problemas con C++

hola, elimine alguna variables y modifique un poco el codigo, dime q te parece: (no te olvides de calificarme)


Código c++:
Ver original
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8. int vidaA=100,vidaB=100;
  9.  
  10. cout<<"\t***---*** Bienvenido a la aplicacion ***---***\n\n";
  11. cout<<"\t\t *** BATALLA RPG ***\n\n";
  12.  
  13. while(vidaA>0 && vidaB>0){
  14.              
  15.     int golpe=0,defensa=0,diferencia=0;
  16.    
  17.     cout<<"**Ataque del jugador 1**\n\n"; //Primer ataque
  18.    
  19.    
  20.     //DECIDI ELIMINAR LAS VARIABLES Y ASIGNAR DIRACTAMENTE EL RAND
  21.     //LO CUAL HACE Q RAN CADA VEZ SEA DIFERENTE, TAMBN LO AUMMNETE
  22.     //A 16 PARA Q EL JUEGO NO SEA TAN LARGO PERO IGUAL PUEDES MODIFICARLE
  23.     golpe=rand()%16;;
  24.     defensa=rand()%16;;
  25.    
  26.     //PRIMER "IF-ELSE" QUE DEFINE SI HAY DAÑO O NO EN EL JUGADOR 2
  27.     if(golpe>defensa)
  28.     {
  29.         diferencia=golpe-defensa;
  30.         vidaB=vidaB-diferencia;
  31.         cout<<"El jugador 2 NO resistio el ataque\n\n";
  32.         cout<<"El jugador 1 produjo un golpe de "<<golpe<<"\n\n";
  33.         cout<<"La defensa del jugador 2 fue de "<<defensa<<"\n\n";
  34.         cout<<"El jugador 1 produjo un danio de "<<diferencia<<"\n\n";
  35.         cout<<"La vida del jugador 2 ahora es de "<<vidaB<<"\n\n";
  36.         system("pause");
  37.         system("cls");
  38.     }
  39.     else
  40.     {
  41.         cout<<"El jugador 2 resistio el ataque\n\n";
  42.         cout<<"El jugador 1 produjo un golpe de "<<golpe<<"\n\n";
  43.         cout<<"La defensa del jugador 2 fue de "<<defensa<<"\n\n";
  44.         cout<<"El jugador 1 produjo un danio de "<<diferencia<<"\n\n";
  45.         cout<<"La vida del jugador 2 ahora es de "<<vidaB<<"\n\n";
  46.         system("pause");
  47.         system("cls");
  48.     }
  49.    
  50.     cout<<"**Ataque del jugador 2**\n\n"; //Segundo ataque
  51.     golpe=rand()%16;;
  52.     defensa=rand()%16;;
  53.    
  54.     //SEGUNDO "IF-ELSE" QUE DEFINE SI HAY DAÑO O NO EN EL JUGADOR 1
  55.     if(golpe>defensa)
  56.     {
  57.         diferencia=golpe-defensa;
  58.         vidaA=vidaA-diferencia;
  59.         cout<<"El jugador 1 NO resistio el ataque\n\n";
  60.         cout<<"El jugador 2 produjo un golpe de "<<golpe<<"\n\n";
  61.         cout<<"La defensa del jugador 1 fue de "<<defensa<<"\n\n";
  62.         cout<<"El jugador 2 produjo un danio de "<<diferencia<<"\n\n";
  63.         cout<<"La vida del jugador 1 ahora es de "<<vidaA<<"\n\n";
  64.         system("pause");
  65.         system("cls");
  66.     }
  67.     else
  68.     {
  69.         cout<<"El jugador 1 resistio el ataque\n\n";
  70.         cout<<"El jugador 2 produjo un golpe de "<<golpe<<"\n\n";
  71.         cout<<"La defensa del jugador 1 fue de "<<defensa<<"\n\n";
  72.         cout<<"El jugador 2 produjo un danio de "<<diferencia<<"\n\n";
  73.         cout<<"La vida del jugador 1 ahora es de "<<vidaA<<"\n\n";
  74.         system("pause");
  75.         system("cls");
  76.     }
  77. }
  78. //TERCER "IF-ELSE" QUE MUESTRA POR PANTALLA QUIEN GANO AL FIN DEL JUEGO
  79. if (vidaA<1)
  80. {
  81.    cout<<"el jugador 2 ha ganado"<<endl;
  82. }
  83. else
  84. {
  85.      cout<<"el jugador 1 ha ganado"<<endl;
  86. }
  87. system("PAUSE");
  88. return EXIT_SUCCESS;
  89. }
  #10 (permalink)  
Antiguo 22/05/2012, 09:12
Avatar de W_NEMESIS  
Fecha de Ingreso: mayo-2012
Ubicación: pasto
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problemas con C++

hola, elimine alguna variables y modifique un poco el codigo, dime q te parece: (no te olvides de calificarme)


Código c++:
Ver original
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8. int vidaA=100,vidaB=100;
  9.  
  10. cout<<"\t***---*** Bienvenido a la aplicacion ***---***\n\n";
  11. cout<<"\t\t *** BATALLA RPG ***\n\n";
  12.  
  13. while(vidaA>0 && vidaB>0){
  14.              
  15.     int golpe=0,defensa=0,diferencia=0;
  16.    
  17.     cout<<"**Ataque del jugador 1**\n\n"; //Primer ataque
  18.    
  19.    
  20.     //DECIDI ELIMINAR LAS VARIABLES Y ASIGNAR DIRACTAMENTE EL RAND
  21.     //LO CUAL HACE Q RAN CADA VEZ SEA DIFERENTE, TAMBN LO AUMMNETE
  22.     //A 16 PARA Q EL JUEGO NO SEA TAN LARGO PERO IGUAL PUEDES MODIFICARLE
  23.     golpe=rand()%16;;
  24.     defensa=rand()%16;;
  25.    
  26.     //PRIMER "IF-ELSE" QUE DEFINE SI HAY DAÑO O NO EN EL JUGADOR 2
  27.     if(golpe>defensa)
  28.     {
  29.         diferencia=golpe-defensa;
  30.         vidaB=vidaB-diferencia;
  31.         cout<<"El jugador 2 NO resistio el ataque\n\n";
  32.         cout<<"El jugador 1 produjo un golpe de "<<golpe<<"\n\n";
  33.         cout<<"La defensa del jugador 2 fue de "<<defensa<<"\n\n";
  34.         cout<<"El jugador 1 produjo un danio de "<<diferencia<<"\n\n";
  35.         cout<<"La vida del jugador 2 ahora es de "<<vidaB<<"\n\n";
  36.         system("pause");
  37.         system("cls");
  38.     }
  39.     else
  40.     {
  41.         cout<<"El jugador 2 resistio el ataque\n\n";
  42.         cout<<"El jugador 1 produjo un golpe de "<<golpe<<"\n\n";
  43.         cout<<"La defensa del jugador 2 fue de "<<defensa<<"\n\n";
  44.         cout<<"El jugador 1 produjo un danio de "<<diferencia<<"\n\n";
  45.         cout<<"La vida del jugador 2 ahora es de "<<vidaB<<"\n\n";
  46.         system("pause");
  47.         system("cls");
  48.     }
  49.    
  50.     cout<<"**Ataque del jugador 2**\n\n"; //Segundo ataque
  51.     golpe=rand()%16;;
  52.     defensa=rand()%16;;
  53.    
  54.     //SEGUNDO "IF-ELSE" QUE DEFINE SI HAY DAÑO O NO EN EL JUGADOR 1
  55.     if(golpe>defensa)
  56.     {
  57.         diferencia=golpe-defensa;
  58.         vidaA=vidaA-diferencia;
  59.         cout<<"El jugador 1 NO resistio el ataque\n\n";
  60.         cout<<"El jugador 2 produjo un golpe de "<<golpe<<"\n\n";
  61.         cout<<"La defensa del jugador 1 fue de "<<defensa<<"\n\n";
  62.         cout<<"El jugador 2 produjo un danio de "<<diferencia<<"\n\n";
  63.         cout<<"La vida del jugador 1 ahora es de "<<vidaA<<"\n\n";
  64.         system("pause");
  65.         system("cls");
  66.     }
  67.     else
  68.     {
  69.         cout<<"El jugador 1 resistio el ataque\n\n";
  70.         cout<<"El jugador 2 produjo un golpe de "<<golpe<<"\n\n";
  71.         cout<<"La defensa del jugador 1 fue de "<<defensa<<"\n\n";
  72.         cout<<"El jugador 2 produjo un danio de "<<diferencia<<"\n\n";
  73.         cout<<"La vida del jugador 1 ahora es de "<<vidaA<<"\n\n";
  74.         system("pause");
  75.         system("cls");
  76.     }
  77. }
  78. //TERCER "IF-ELSE" QUE MUESTRA POR PANTALLA QUIEN GANO AL FIN DEL JUEGO
  79. if (vidaA<1)
  80. {
  81.    cout<<"el jugador 2 ha ganado"<<endl;
  82. }
  83. else
  84. {
  85.      cout<<"el jugador 1 ha ganado"<<endl;
  86. }
  87. system("PAUSE");
  88. return EXIT_SUCCESS;
  89. }
  #11 (permalink)  
Antiguo 22/05/2012, 09:14
Avatar de W_NEMESIS  
Fecha de Ingreso: mayo-2012
Ubicación: pasto
Mensajes: 25
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: problemas con C++

hola :) hay un pequeño error, los randoms van con un solo ";" y se me fueron con 2 (eror de dedo)

lineas 23, 24, 51, 52

Etiquetas: int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:24.