Roca, papel y tijeras con switch-case C
Publicado por Ricardo Palacios (14 intervenciones) el 07/04/2018 06:58:40
Hola a todos tengo un problema, primero hice este problema sin usar char solo use int y todo bien ponía 1.-Roca para el usuario 1 y 3.-Tijeras para el usuario 2 lo que me daba como ganador para el jugador 1, pero ahora lo quiero hacer usando R.-Roca, P.-Papel y T.-Tijeras y para ello debo de usar char no se que tengo mal que cuando pulso R para el jugador 1 ya no me deja elegir nada para el usuario 2 y pone error como si se tratase de un comando invalido, en la imagen se mira mas claro el error que menciono, espero que puedan ayudarme.
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/*1. En el juego para dos personas llamado "ROCA, PAPEL Y TIJERAS" cada jugador escoge ser "T", "R" o "P" respectivamente.
El jugador se determina así por medio de la función: roca rompe tijeras, las tijeras cortan el papel, el papel cubre la roca,
el juego es un empate si ambos jugadores eligen la misma opción. Elaborar un programa para que determine cual jugador gana,
la salida debe mostrarse por la función de la siguiente forma: "T-R Roca rompe tijeras gana el jugador 2"*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void main()
{
char x, y;
int intentos=0, ganados=0, perdidos=0, empate=0;
printf("Jugador 1 selecciona una opcion\nR.-Roca\nP.-Papel\nT.-Tijeras\n4.-No jugar\n");
printf("Dame tu opcion: [ ]\b\b");
fflush(stdin);
scanf_s("%c", &x); _toupper(x);
printf("Jugador 2 selecciona una opcion\nR.-Roca\nP.-Papel\nT.-Tijeras\nN.-No jugar\n");
printf("Dame tu opcion: [ ]\b\b");
fflush(stdin);
scanf_s("%c", &y); _toupper(y);
switch (x,y) { /*switch*/
case 'R':
if (x == y) { /*Se evaluan las siguientes condiciones*/
printf("Es un empate\n");
empate += 1; /*Incrementa empate*/
intentos += 1;/*Incrementa intentos*/
}
else if (x >= y) {
printf("Tu pierdes\n");
perdidos += 1;/*Incrementa perdidos*/
intentos += 1;/*Incrementa intentos*/
}
else if (x <= y) {
printf("Tu ganas\n");
ganados += 1;/*Incrementa ganados*/
intentos += 1;/*Incrementa intentos*/
}/*Fin del if*/
break;/*Sale del switch*/
case 'P': if (x == y) { /*Se evaluan las siguientes condiciones*/
printf("Es un empate\n");
empate += 1;/*Incrementa empate*/
intentos += 1;/*Incrementa intentos*/
}
else if (x >= y) {
printf("Tu pierdes\n");
perdidos += 1;/*Incrementa perdidos*/
intentos += 1;/*Incrementa intentos*/
}
else if (x <= y) {
printf("Tu ganas\n");
ganados += 1;/*Incrementa ganados*/
intentos += 1;/*Incrementa intentos*/
}/*Fin del if*/
break;/*Sale del switch*/
case 'T': if (x == y) { /*Se evaluan las siguientes condiciones*/
printf("Es un empate\n");
empate += 1;/*Incrementa empate*/
intentos += 1;/*Incrementa intentos*/
}
else if (x >= y) {
printf("Tu pierdes\n");
perdidos += 1;/*Incrementa perdidos*/
intentos += 1;/*Incrementa intentos*/
}
else if (x <= y) {
printf("Tu ganas\n");
ganados += 1;/*Incrementa ganados*/
intentos += 1;/*Incrementa intentos*/
}/*Fin del if*/
break;/*Sale del switch*/
case 'N': printf("Has decidido no jugar");
break;
default: printf("ERROR\n");
break;/*Sale del switch*/
}/*Fin del switch*/
printf("\nHas ganado %d veces\n", ganados);/*Despliega el numero de veces ganados*/
printf("Has perdido %d veces\n", perdidos);/*Despliega el numero de veces perdidos*/
printf("Has empatado %d veces\n", empate);/*Despliega el numero de veces empatados*/
printf("Has jugado %d veces\n", intentos);/*Despliega el numero de intentos*/
if (ganados>perdidos) { /*Se evaluan las siguientes condiciones*/
printf("\nGanaste la partida");
}
else if (perdidos>ganados) {
printf("\nPerdiste la partida");
}
else if (ganados == perdidos) {
printf("\nEs un empate");
}/*Fin del if*/
printf("\nGracias por jugar ;)");
system("pause>null");
}/*Fin de main*/
Valora esta pregunta
0