Hola, qué tal. Soy nuevo en este foro y tengo un problema. Me atoré con este programa, ya no supe qué más hacer cuando corro el programa y elijo cualquier opción para el jugador 1 me lo manda como caracter no valido. ¿Qué hace falta para que funcione bien mi programa?, espero que puedan iluminarme amigos, de antemano muchas gracias
SOURCE
/*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>
#include "juego.h"
void main()
{
int Juego;
char x, y;
printf("\t\t\tJUEGO ROCA, PAPEL Y TIJERAS\n");
printf("Bienvenidos elijan un arma\nR.-Roca\nP.-Papel\nT.-Tijeras\n");
printf("Arma jugador 1: [ ]\b\b");
fflush(stdin);
scanf_s("%c", &x);
toupper(x);
printf("Arma jugador 2: [ ]\b\b");
fflush(stdin);
scanf_s("%c", &y);
toupper(y);
if (x == 'R' &&y == 'R')
{
Juego = 1;
}
else
if (x == 'P' &&y == 'P')
{
Juego = 2;
}
else
if (x == 'T' &&y == 'T')
{
Juego = 3;
}
if (x == 'R' &&y == 'P')
{
Juego = 4;
}
else
if (x == 'P' &&y == 'T')
{
Juego = 5;
}
else
if (x == 'T' &&y == 'R')
{
Juego = 6;
}
if (x == 'R' &&y == 'T')
{
Juego = 7;
}
else
if (x == 'P' &&y == 'R')
{
Juego = 8;
}
else
if (x == 'T' &&y == 'P')
{
Juego = 9;
}
else
{
Juego = 0;
}
switch (Juego)
{
case 1:
printf("\nR-R Empate");
break;
case 2:
printf("\nP-P Empate");
break;
case 3:
printf("\nT-T Empate");
break;
case 4:
papel_cubre_roca(x, y);
break;
case 5:
tijeras_cortan_papel(x, y);
break;
case 6:
roca_rompe_tijeras(x, y);
break;
case 7:
roca_rompe_tijeras(x, y);
break;
case 8:
papel_cubre_roca(x, y);
break;
case 9:
tijeras_cortan_papel(x, y);
break;
case 0:
printf("\nCARACTER INVALIDO");
break;
}
system("pause>null");
}
HEADER
juego.h
void papel_cubre_roca(char,char);
void tijeras_cortan_papel(char, char);
void roca_rompe_tijeras(char, char);
void papel_cubre_roca(char x, char y)
{
if (x == 'P'&& y == 'R')
{
printf("\n%c-%c P-R Papel cubre roca gana el jugador 1", x, y);
}
else
printf("\n%c-%c R-P Papel cubre roca gana el jugador 2", x, y);
}
void tijeras_cortan_papel(char x, char y)
{
if (x == 'T'&& y == 'P')
{
printf("\n%c-%c T-P Tijeras cortan papel gana el jugador 1", x, y);
}
else
printf("\n%c-%c P-T Tijeras cortan papel gana el jugador 2", x, y);
}
void roca_rompe_tijeras(char x, char y)
{
if (x == 'R'&& y == 'T')
{
printf("\n%c-%c R-T Roca rompe tijeras gana el jugador 1",x,y);
}
else
printf("\n%c-%c T-R Roca rompe tijeras gana el jugador 2", x, y);
}