sábado, 20 de noviembre de 2010

Un poco de ocio en "C"

Usuario vs Compu!!

Este es un programa que imita el juego de "piedra, papel o tijeras" en el que puedes competir contra tu pc.

Primero guardemos el código con la extensión ".c"

Este es el código:


/*Este programa es un juego de piedra, papel o tijera*/

#include <stdio.h>

#include <stdlib.h>

 

/* la función main inicia la ejecución del programa */

int main ()

{

    /* fase de inicialización */

    int x;  /*La eleccion del usuario*/

    int intentos; /*Numero de intentos*/

    int ganados ; /*Numero de veces ganados*/

    int perdidos; /*Numero de veces perdidos*/

    int empate; /*Numero de veces empatados*/

    unsigned int y; /*Numero que se utiliza para establecer un numero aletorio*/

       

    intentos=0;

    ganados=0;

    perdidos=0;

    empate=0;

   

    printf("Selecciona una opcion\n1.-Piedra\n2.-Papel\n3.-Tijera\n(o -1 para terminar): \n");

    scanf("%d", &x);

   

    while(x!=-1){  /*Ciclo controlado por centinela*/

    y =(rand() %3);  /*Numero aletorio del 1 al 3*/

   

                 /*Determina cual fue la opcion que elegio el usuario*/

                 switch(x){    /*switch anidado dentro del while*/

                           case 1:

                                   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("Ta ganas\n");

                                   ganados+=1;/*Incrementa ganados*/

                                   intentos+=1;/*Incrementa intentos*/

                                   }/*Fin del if*/

                                  

                                   break;/*Sale del switch*/

                          

                           case 2: 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 3: 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*/

                                  

                           default: printf("Error\n");

                                    break;/*Sale del switch*/

                                    }/*Fin del switch*/

                                   

                                    printf("Selecciona una opcion\n1.-Piedra\n2.-Papel\n3.-Tijera\n(o -1 para terminar)\n");

                                    scanf("%d", &x);

                                    }/*Fin del while*/

   

   

    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 ;)");

   

}/*Fin de main*/

Una vez que tenemos el codigo vamos a compilarlo, pero primero localizamos el archivo en la terminal, "cd" para cambiar de carpeta y "ls" para ver su contenido.

Ya que lo localizamos, compilamos, para eso usamos "gcc nombre del archivo.c" y le damos enter.


Si compiló correctamente aparece un archivo llamado "a.out" que es el que ejecutaremos, (no es necesario poner el "getch();" de lo contrario marcará error).

Ahora para ejecutar el programa usamos "./a.out".

Bien como pueden ver aparecen las instrucciones de que numero teclear para elegir una opción, o salir. 1 para piedra, 2 para papel, 3 para tijeras y -1 para terminar.


Elegí tijeras y gane!!, nos pide otra elección.


Ahora elegí piedras y fue empate.


Después de varios intentos perdí por elegir piedra.


Al terminar nos dice cuantas ganamos, empatamos o perdimos, y las veces que jugamos.

Según el resultado nos dice si ganamos, perdimos o empatamos la partida.


1 comentario: