Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: BARIS514 en 26 Marzo 2020, 09:09 am



Título: UN JUEGO LLAMADO SCRAPS
Publicado por: BARIS514 en 26 Marzo 2020, 09:09 am
EL PROGRAMA ME DA ERROR POR ALGUNA RAZÓN Y ME ENFOCA AL 'SRAND(time( NULL) )'
Y HONESTAMENTE NO SE POR QUE.

Código
  1. /*Figura 5.10: fig05_10.c
  2.   Craps*/
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5. #include<time.h> //contiene el prototipo de la funcion time
  6.  
  7. /*Constantes de enumeracion que representan el estado del juego*/
  8. enum Estatus { CONTINUA, GANA, PIERDE};
  9.  
  10. int tiraDados( void ); /*prototipo de la funcion*/
  11.  
  12. /*la funcion main comienza la ejecucion del programa*/
  13. int main()
  14. {
  15. int suma; /*suma del tiro de datos*/
  16. int miPunto;/*punto ganado*/
  17.  
  18. enum Estatus estatusJuego  /*puede contener CONTINUA,GANA O PIERDE*/
  19.  
  20. /*randomiza el generador de numeros aleatorios mediante la funcion time*/
  21. srand( time( NULL) );
  22.  
  23. suma = tiraDados();  /*primer tiro de los dados*/
  24.  
  25. /*determina el estado del juego basado en la suma de los dados*/
  26. switch( suma ){
  27.  
  28. /*gana en el primer tiro*/
  29. case 7:
  30. case 11:
  31. estatusJuego = GANA;
  32. break;
  33.  
  34. /*pierde en el primer tiro */
  35. case 2:
  36. case 3:
  37. case 12:
  38. estatusJuego = PIERDE;
  39. break;
  40.  
  41. /*RECUERDO EL PUNTO*/
  42. default:
  43. estatusJuego = CONTINUA;
  44. miPunto = suma;
  45. printf("Su punto es %d\n", miPunto);
  46. break;//opcional el break en este case
  47.  
  48. }//fin de switch
  49.     /*mientras el Juego no se complete*/
  50.     while( estatusJuego == CONTINUA){
  51.     suma = tiraDados(); /*tira de nuevo los dados*/
  52.  
  53.     /*determina el estatus del juego*/
  54.     if(suma == miPunto){/*gana por punto*/
  55.     estatusJuego = GANA; /*Fin del juego, el jugador gana*/
  56.     }/*fin de if*/
  57.     else{
  58.  
  59.     if(suma == 7){/*pierde el tirar */
  60.     estatusJuego = PIERDE;
  61. }/*Fin de if*/
  62.  
  63. }/*fin de else*/
  64.  
  65. }/*fin de while*/
  66.  
  67. /*despliega mensaje de triunfo o derrota*/
  68. if( estatusJuego == GANA ){ /*¿Gano el jugador? */
  69. printf("El jugador gana \n");
  70. }/*fin de if*/
  71. else{/*el jugador pierde*/
  72. printf("El jugador pierde\n");
  73. }//fin del else
  74.  
  75. return 0;//indica terminacion exitosa
  76.  
  77. }//fin de main
  78.  
  79. //tiro de dados, calcula la suma y despliega los resultado
  80. int tiraDados( void )
  81. {
  82. int dado1;//primer dado
  83. int dado2;//segundo dado
  84. int sumaTemp;//suma de los dados
  85.  
  86. dado1 = 1 + (rand() % 6 );
  87. dado2 = 1 + (rand() % 6 );
  88. sumaTemp = dado 1 + dado2;
  89.  
  90. /*despliega los resultados de este tiro*/
  91. printf("El jugador tiro %d + %d = %d\n",dado1, dado2, sumaTemp);
  92.  
  93. return sumaTemp; /*devuelve la suma alos dados*/
  94.  
  95. }/*fin de a funcion tiradados*/
  96.  









ALGUIEN POR FAVOR AYUDEME :(


Título: Re: UN JUEGO LLAMADO SCRAPS
Publicado por: engel lex en 26 Marzo 2020, 09:16 am
primero que nada, no escribas en mayusculas


por otro lado las funciones como stdlib no llevan .h, ninguna del standard C lo lleva

otra cosa... dices que te da error, pero no dices cual,


por cierto tienes errores de sintaxis en varios lugares


Título: Re: UN JUEGO LLAMADO SCRAPS
Publicado por: BARIS514 en 26 Marzo 2020, 09:25 am
Si lo sé xD, sabes gracias por tu respuesta, primero que nada ya resolví el problema; el problema era que me faltaba un punto y coma en una parte.

Jajaj Disculpa por las molestias   xD


Título: Re: UN JUEGO LLAMADO SCRAPS
Publicado por: Mecanma en 13 Abril 2020, 02:56 am
Aquí te correí unas cuanas lineas  creo que funciona como debería

Código
  1.  
  2. #include<cstdio>
  3. #include<cstdlib>
  4. #include<ctime> //contiene el prototipo de la funcion time
  5.  
  6. /*Constantes de enumeracion que representan el estado del juego*/
  7. enum Estatus { CONTINUA, GANA, PIERDE};
  8.  
  9. int tiraDados( void ); /*prototipo de la funcion*/
  10.  
  11. /*la funcion main comienza la ejecucion del programa*/
  12. int main()
  13. {
  14. int suma; /*suma del tiro de datos*/
  15. int miPunto;/*punto ganado*/
  16.  
  17. enum Estatus estatusJuego;  /*puede contener CONTINUA,GANA O PIERDE*/
  18.  
  19. /*randomiza el generador de numeros aleatorios mediante la funcion time*/
  20. srand( time( NULL) );
  21.  
  22. suma = tiraDados();  /*primer tiro de los dados*/
  23.  
  24. /*determina el estado del juego basado en la suma de los dados*/
  25. switch( suma ){
  26.  
  27. /*gana en el primer tiro*/
  28. case 7:
  29. case 11:
  30. estatusJuego = GANA;
  31. break;
  32.  
  33. /*pierde en el primer tiro */
  34. case 2:
  35. case 3:
  36. case 12:
  37. estatusJuego = PIERDE;
  38. break;
  39.  
  40. /*RECUERDO EL PUNTO*/
  41. default:
  42. estatusJuego = CONTINUA;
  43. miPunto = suma;
  44. printf("Su punto es %d\n", miPunto);
  45. break;//opcional el break en este case
  46.  
  47. }//fin de switch
  48.     /*mientras el Juego no se complete*/
  49.     while( estatusJuego == CONTINUA){
  50.     suma = tiraDados(); /*tira de nuevo los dados*/
  51.  
  52.     /*determina el estatus del juego*/
  53.     if(suma == miPunto){/*gana por punto*/
  54.     estatusJuego = GANA; /*Fin del juego, el jugador gana*/
  55.     }/*fin de if*/
  56.     else{
  57.  
  58.     if(suma == 7){/*pierde el tirar */
  59.     estatusJuego = PIERDE;
  60. }/*Fin de if*/
  61.  
  62. }/*fin de else*/
  63.  
  64. }/*fin de while*/
  65.  
  66. /*despliega mensaje de triunfo o derrota*/
  67. if( estatusJuego == GANA ){ /*¿Gano el jugador? */
  68. printf("El jugador gana \n");
  69. }/*fin de if*/
  70. else{/*el jugador pierde*/
  71. printf("El jugador pierde\n");
  72. }//fin del else
  73.  
  74. return 0;//indica terminacion exitosa
  75.  
  76. }//fin de main
  77.  
  78. //tiro de dados, calcula la suma y despliega los resultado
  79. int tiraDados( void )
  80. {
  81. int dado1;//primer dado
  82. int dado2;//segundo dado
  83. int sumaTemp;//suma de los dados
  84.  
  85. dado1 = 1 + (rand() % 6 );
  86. dado2 = 1 + (rand() % 6 );
  87. sumaTemp = dado1 + dado2;
  88.  
  89. /*despliega los resultados de este tiro*/
  90. printf("El jugador tiro %d + %d = %d\n",dado1, dado2, sumaTemp);
  91.  
  92. return sumaTemp; /*devuelve la suma alos dados*/
  93.  
  94. }/*fin de a funcion tiradados*/
  95.  
  96.