Problema con funciones en C
Publicado por Brian (14 intervenciones) el 11/07/2020 04:46:16
Estaba completando mi trabajo, de un juego de dados con funciones, compila y todo, el problema, cuando te pregunta si quiero continuar jugando, cuando le doy 's' o 'S' (como respuesta a sí), repite la misma pregunta, y sucede consecutivamente, solo tengo ese inconveniente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<unistd.h>
#include<ctype.h>
int hacerTirada(void);
int seguirJugando(void);
void juegaDados(void);
void main(void){
juegaDados();
}
int hacerTirada(){ //Tirar dados
char tirar;
do{
puts("¿Realizar tirada? (S/N)");
scanf("%c",&tirar);
getchar();
tirar = toupper(tirar); // Convierte a mayúsculas el contenido previo de tirar
switch(tirar){
case 'S': puts("Iniciando un nuevo juego...\n");
break;
case 'N': puts("Esta bien, tomate un tiempo para retomar un nuevo juego...\n");
break;
default: puts("No entendi tu respuesta! Intenta de nuevo.\n");
break;
sleep(2);
}
}while(tirar !='S'); // Mientras la respuesta no sea "S"
}
int seguirJugando(){ //Continuar o cerrar el juego
char continuar;
puts("¿Continuar jugando? (S/N)\n");
scanf("%c",&continuar);
continuar = toupper(continuar); // Convierte a mayúsculas el contenido previo de continuar
getchar();
switch(continuar){
case 'S': puts("Volver a jugar\n");
break;
case 'N': puts("Esta bien, pero se que volveras, hasta pronto!...\n");
break;
default: puts("No entendi tu respuesta asi que seguiremos jugando!.\n");
continuar = 'S'; // Asigna arbitrariamente el valor de seguir jugando
break;
}
}
void juegaDados(void){ //Cuerpo del juego
int jugador, maquina;
char tirar, continuar;
srand(time(0));
hacerTirada();
jugador = rand() % 6 + 1;
maquina = rand() % 6 + 1;
puts("Turno del usuario: tirando dados..."); //turno del usuario
sleep(3); //Tiempo de espera
printf("Valor de la tirada del jugador: %i\n",jugador);
puts("Turno de la maquina: tirando dados...");
sleep(5);
printf("Valor de la tirada de la maquina: %i\n",maquina);
if(jugador > maquina){
printf("\nG a n a s t e !\n");
}
else if (jugador == maquina){
printf("\nE m p a t e !\n");
}else{
printf("\nP e r d i s t e !\n");
}
do{
seguirJugando();
}while(continuar == 'S'); // Mientras la respuesta a continuar sea "S"
}
Valora esta pregunta


0