Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/03/2014, 10:59
Dempo87
 
Fecha de Ingreso: octubre-2013
Ubicación: Murcia
Mensajes: 54
Antigüedad: 10 años, 7 meses
Puntos: 0
Piedra, Papel y Tijera

Hola, me estoy apoyando en varios codigos para realizar el juego de Piedra, Papel y Tijera. Me esta costando mucho pero mas o menos lo tengo, aunque como digo, me he apoyado en varios codigos vistos en la red y en esta web (tema cerrado) y tengo varias dudas, pero mas que problemas, es para saber el por que de ciertos usos de variables en ciertas partes del codigo. No se el por que de su usos pero quiero saberlos por aquello de aprender mas......... estoy muy verde, xD

Este es el codigo, compila y funciona:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char* argv[])
  5. {
  6.   char *materiales[3] = {"Piedra", "Papel", "Tijeras"};
  7.   int jugador, cpu;
  8.   int partidas = 0, ganados = 0, empate = 0, perdidos = 0;
  9.  
  10.   //1. Empieza el juego
  11.   do {
  12.       //2. Estadisticas
  13.       printf("\n\t\t\t\t  PJ PG PE PP\n");
  14.       printf("\n\t\t\t\t  %d  %d  %d  %d\n", partidas, ganados, empate, perdidos);
  15.      
  16.       //2.1. Jugador tira
  17.       printf("\n\n Piedra (1) - Papel (2) - Tijera (3)\n Elige opcion: ");
  18.      
  19.       do
  20.         scanf("%d", &jugador);
  21.        
  22.         while ((jugador == '\n') && (jugador != '1' || jugador != '2' || jugador != '3'));
  23.        
  24.         while (getchar()!= '\n');
  25.        
  26.         jugador--;
  27.         cpu = rand() % 3;
  28.        
  29.         //2.2. Informacion de la mano
  30.         printf ("\n\n MANOS\n");
  31.         printf (" -----\n");
  32.         printf ("\n Jugador:   %s"
  33.                 "\n CPU:       %s"
  34.                 "\n Resultado:", materiales[jugador], materiales[cpu]);
  35.        
  36.         //2.3. Comprobaciones de manos
  37.         if (jugador == cpu){
  38.           printf(" Empate\n");
  39.           empate++;
  40.           }
  41.          
  42.           else if ((jugador == 0 && cpu == 2)||(jugador == 1 && cpu == 0)||(jugador == 2 && cpu == 1)) {
  43.                printf(" Gana Jugador\n");
  44.                ganados++;
  45.                }
  46.                
  47.           else {
  48.                printf(" Gana CPU\n");
  49.                perdidos++;
  50.                }
  51.        
  52.         //2.4. Termina la mano, se suma otra partida.
  53.         partidas++;
  54.        
  55.         //2.5. Muestro informacion en pantalla asta que se introduce intro, por eso el uso de getchar.
  56.         printf ("\n\n\n Pulsa intro para siguiente mano");
  57.         getchar();
  58.         system ("CLS");
  59.  
  60.       }while (ganados < 5 && perdidos < 5);
  61.      
  62.       if (ganados > perdidos)
  63.         printf ("\n Has ganado en %d intentos.", partidas);
  64.      
  65.         else
  66.             printf ("\n Has perdido en %d intentos.", partidas);
  67.            
  68.             getchar();
  69.  
  70.  system ("PAUSE");
  71.  return 0;
  72.  }