Autor
|
Tema: UN JUEGO LLAMADO SCRAPS (Leído 2,816 veces)
|
BARIS514
Desconectado
Mensajes: 5
|
EL PROGRAMA ME DA ERROR POR ALGUNA RAZÓN Y ME ENFOCA AL 'SRAND(time( NULL) )' Y HONESTAMENTE NO SE POR QUE. /*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
|
|
« Última modificación: 26 Marzo 2020, 09:17 am por engel lex »
|
En línea
|
|
|
|
engel lex
|
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
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
BARIS514
Desconectado
Mensajes: 5
|
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
|
|
|
En línea
|
|
|
|
Mecanma
Desconectado
Mensajes: 8
|
Aquí te correí unas cuanas lineas creo que funciona como debería #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*/
|
|
|
En línea
|
|
|
|
|
|