Roca, papel y tijeras con switch-case C

Iniciado por Darklexis312, Abril 07, 2018, 03:06:07 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Abril 07, 2018, 03:06:07 AM Ultima modificación: Abril 07, 2018, 06:02:26 AM por Gabriela
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.

Código: text
/*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*/