Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]
/*Figura 5.10: fig05_10.c
 Craps*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h> //contiene el prototipo de la funcion time

/*Constantes de enumeracion que representan el estado del juego*/
enum Estatus { CONTINUA, GANA, PIERDE};

int tiraDados( void ); /*prototipo de la funcion*/

/*la funcion main comienza la ejecucion del programa*/
int main()
{
int suma; /*suma del tiro de datos*/
int miPunto;/*punto ganado*/

enum Estatus estatusJuego  /*puede contener CONTINUA,GANA O PIERDE*/

/*randomiza el generador de numeros aleatorios mediante la funcion time*/
srand( time( NULL) );

suma = tiraDados();  /*primer tiro de los dados*/

/*determina el estado del juego basado en la suma de los dados*/
switch( suma ){

/*gana en el primer tiro*/
case 7:
case 11:
estatusJuego = GANA;
break;

/*pierde en el primer tiro */
case 2:
case 3:
case 12:
estatusJuego = PIERDE;
break;

/*RECUERDO EL PUNTO*/
default:
estatusJuego = CONTINUA;
miPunto = suma;
printf("Su punto es %d\n", miPunto);
break;//opcional el break en este case

}//fin de switch
    /*mientras el Juego no se complete*/
    while( estatusJuego == CONTINUA){
    suma = tiraDados(); /*tira de nuevo los dados*/
   
    /*determina el estatus del juego*/
    if(suma == miPunto){/*gana por punto*/
    estatusJuego = GANA; /*Fin del juego, el jugador gana*/
    }/*fin de if*/
    else{
   
    if(suma == 7){/*pierde el tirar */
    estatusJuego = PIERDE;
}/*Fin de if*/

}/*fin de else*/

}/*fin de while*/

/*despliega mensaje de triunfo o derrota*/
if( estatusJuego == GANA ){ /*¿Gano el jugador? */
printf("El jugador gana \n");
}/*fin de if*/
else{/*el jugador pierde*/
printf("El jugador pierde\n");
}//fin del else

return 0;//indica terminacion exitosa

}//fin de main

//tiro de dados, calcula la suma y despliega los resultado
int tiraDados( void )
{
int dado1;//primer dado
int dado2;//segundo dado
int sumaTemp;//suma de los dados

dado1 = 1 + (rand() % 6 );
dado2 = 1 + (rand() % 6 );
sumaTemp = dado 1 + dado2;

/*despliega los resultados de este tiro*/
printf("El jugador tiro %d + %d = %d\n",dado1, dado2, sumaTemp);

return sumaTemp; /*devuelve la suma alos dados*/

}/*fin de a funcion tiradados*/










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 (cpp) [Seleccionar]


#include<cstdio>
#include<cstdlib>
#include<ctime> //contiene el prototipo de la funcion time

/*Constantes de enumeracion que representan el estado del juego*/
enum Estatus { CONTINUA, GANA, PIERDE};

int tiraDados( void ); /*prototipo de la funcion*/

/*la funcion main comienza la ejecucion del programa*/
int main()
{
int suma; /*suma del tiro de datos*/
int miPunto;/*punto ganado*/

enum Estatus estatusJuego;  /*puede contener CONTINUA,GANA O PIERDE*/

/*randomiza el generador de numeros aleatorios mediante la funcion time*/
srand( time( NULL) );

suma = tiraDados();  /*primer tiro de los dados*/

/*determina el estado del juego basado en la suma de los dados*/
switch( suma ){

/*gana en el primer tiro*/
case 7:
case 11:
estatusJuego = GANA;
break;

/*pierde en el primer tiro */
case 2:
case 3:
case 12:
estatusJuego = PIERDE;
break;

/*RECUERDO EL PUNTO*/
default:
estatusJuego = CONTINUA;
miPunto = suma;
printf("Su punto es %d\n", miPunto);
break;//opcional el break en este case

}//fin de switch
     /*mientras el Juego no se complete*/
     while( estatusJuego == CONTINUA){
      suma = tiraDados(); /*tira de nuevo los dados*/

      /*determina el estatus del juego*/
      if(suma == miPunto){/*gana por punto*/
      estatusJuego = GANA; /*Fin del juego, el jugador gana*/
      }/*fin de if*/
      else{

      if(suma == 7){/*pierde el tirar */
      estatusJuego = PIERDE;
}/*Fin de if*/

}/*fin de else*/

}/*fin de while*/

/*despliega mensaje de triunfo o derrota*/
if( estatusJuego == GANA ){ /*¿Gano el jugador? */
printf("El jugador gana \n");
}/*fin de if*/
else{/*el jugador pierde*/
printf("El jugador pierde\n");
}//fin del else

return 0;//indica terminacion exitosa

}//fin de main

//tiro de dados, calcula la suma y despliega los resultado
int tiraDados( void )
{
int dado1;//primer dado
int dado2;//segundo dado
int sumaTemp;//suma de los dados

dado1 = 1 + (rand() % 6 );
dado2 = 1 + (rand() % 6 );
sumaTemp = dado1 + dado2;

/*despliega los resultados de este tiro*/
printf("El jugador tiro %d + %d = %d\n",dado1, dado2, sumaTemp);

return sumaTemp; /*devuelve la suma alos dados*/

}/*fin de a funcion tiradados*/