Ver Mensaje Individual
  #11 (permalink)  
Antiguo 30/08/2012, 15:38
ecfisa
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 5 meses
Puntos: 22
Respuesta: Piedra, Papel, Tijeras (C) Problema

Hola.

Cita:
Porque ju debe ser char, si va a tener un numero?
En realidad por que es mas sencillo de evaluar como caracter, luego se puede convertir a su valor numérico.
Con la modificación de la elección quedaría:
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>  
  4.  
  5. int main(int argc, char* argv[])
  6. {
  7.   char *v[3] = {"piedra","papel","tijeras"};
  8.   char ju, pc, jugados = 1, ganados = 0, perdidos = 0;
  9.  
  10.   srand((unsigned) time(NULL));  /* por que tuviste problemas con randomize */
  11.   do {
  12.     printf("Jugada %d | Ganados:%2d Perdidos:%2d\n",jugados, ganados, perdidos);
  13.     printf("---------------------------------------\n");
  14.     printf("1. Piedra\n");
  15.     printf("2. Papel\n");
  16.     printf("3. Tijeras\n");
  17.     printf("elija una opcion (1-3)\n");
  18.  
  19.     do
  20.       scanf("%c", &ju);
  21.     while (ju != '1' && ju != '2' && ju != '3');
  22.     ju -= 49; /* '1' = 49, '2' = 50, '3' = 51 => 0,1,2 (también puede usarse atoi ) */
  23.     pc = rand() % 3;
  24.  
  25.     printf("Ud eligio %s, la PC eligio %s => ", v[ju], v[pc]);
  26.     if (ju == pc)
  27.       printf("Hay empate\n");
  28.     else if ((ju == 0 && pc == 2)||(ju == 1 && pc == 0)||(ju == 2 && pc == 1)) {
  29.       printf("Ud. gana\n");
  30.       ganados++;
  31.     }
  32.     else {
  33.       printf("La PC gana\n");
  34.       perdidos++;
  35.     }
  36.  
  37.     jugados++;
  38.     printf("\n\n");
  39.   } while (ganados < 5 && perdidos < 5);
  40.  
  41.   if (ganados > perdidos)
  42.     printf("Ud ha ganado en %d intentos.",jugados);
  43.   else
  44.     printf("Ud ha perdido en %d intentos.",jugados);
  45.  
  46.   while(getchar()!='\n');
  47.   getchar();
  48.   return 0;
  49. }

Saludos.