Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Darklexis312 en 9 Abril 2018, 10:19 am



Título: Roca, papel y tijeras-Problema [C]
Publicado por: Darklexis312 en 9 Abril 2018, 10:19 am
Hola que tal soy nuevo en este foro tengo un problema ya me atore con este programa ya no supe que mas hacer cuando corro el programa y elijo cualquier opción para el jugador 1 me lo manda como caracter no valido, espero que puedan iluminarme amigos, de antemano muchas gracias

SOURCE
Código:
/*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
Código:
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);
}


Título: Re: Roca, papel y tijeras-Problema [C]
Publicado por: MAFUS en 9 Abril 2018, 12:24 pm
Es x=toupper(x), ídem con y.