Código:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int TirarDados (void);
int CantJugadores (void);
int transEntero(char);
int Jugadores;
int main () {
srand (time(NULL));
printf("!Bienvenidos al juego: EL PRESO!\n\n");
Jugadores = CantJugadores();
system("pause");
return EXIT_SUCCESS;
}
// Funcion para tirar los dados //
int TirarDados (void)
{
Dados = rand() % 11+2;
printf("Arrojas los dados. Has sacado %d! \n", Dados);
return Dados;
}
// Funcion para pasar de char a entero //
int transEntero(char s)
{
return s - '0';
}
// Funcion para validar la cantidad de jugadores al principio del juego//
int CantJugadores ()
{
printf("Ingrese la cantidad de jugadores (Minimo 2, Maximo 5): ");
char jugador = getchar();
int Jugadores = transEntero(jugador);
while (Jugadores < 2 || Jugadores > 5)
{
printf("Ingrese una cantidad de jugadores valida: \n");
char jugador = getchar();
int Jugadores = transEntero(jugador);
}
printf("Los participantes del juego seran %d.\n", Jugadores);
return Jugadores;
}
El tema es asi, estoy empezando a codificar la primer parte de un juego para un proyecto de la universidad. Me encontre con un problema cuando quiero validar la cantidad de jugadores que van a ingresar por teclado. Tengo que validar que sea un valor entre 2 y 5 Jugadores, y a su vez que el programa no aborte ni pinche cuando se ingrese una letra o un caracter distinto de un decimal.
La primera parte va bien pero si se cumple la condicion del while, es decir se ingresa algo que no va entre 2 y 5, luego el programa pide nuevamente ingresador una cantidad de jugadores valida... y por mas que se ponga un 2, 3, 4 o 5, el programa no responde bien y vuelve a pedir una cantidad de jugadores valida...
Por favor alguien que me ayude a darme cuenta del error!
Saludos!!