jueves, 11 de agosto de 2011

Piedra, papel, tijera

Continuando con los juegos, a continuación se puede ver el código de un pequeño programa en C que permite jugar al famoso juego "Piedra, papel, tijera". Aunque pueda parecer que nos pasamos el día jugando, he llegado a la conclusión de que programando estos juegos se puede aprender bastante. Además, la programación si es divertida puede ser como un juego, en el que tú defines las normas.

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main()
{
    int jugada_ordenador=0, jugada_usuario=0;
    int fin=0;

    srand(time(NULL));
    while (1) {
        printf("\tPiedra, papel, tijera\n\n");
        printf("\t 1.- Piedra\n");
        printf("\t 2.- Papel\n");
        printf("\t 3.- Tijera\n");
        printf("\t 4.- Salir\n\n");
        printf("\t Haga su jugada: ");

        scanf("%d",&jugada_usuario);
        jugada_ordenador = (rand()%3) + 1;

        if (jugada_usuario==4) return 0; //Salimos del programa

        switch (jugada_usuario) {
            case 1:
                printf("\n\tUsted ha elegido Piedra\n");
                break;
            case 2:
                printf("\n\tUsted ha elegido Papel\n");
                break;
            case 3:
                printf("\n\tUsted ha elegido Tijera\n");
                break;
        }

        switch (jugada_ordenador) {
            case 1:
                printf("\n\tEl ordenador ha elegido Piedra\n");
                break;
            case 2:
                printf("\n\tEl ordenador ha elegido Papel\n");
                break;
            case 3:
                printf("\n\tEl ordenador ha elegido Tijera\n");
                break;
        }
        //Comprobamos los casos en los que gana el ordenador
        if (jugada_ordenador==1 && jugada_usuario==3) printf("\n\n\tGana el ordenador\n");
        if (jugada_ordenador==2 && jugada_usuario==1) printf("\n\n\tGana el ordenador\n");
        if (jugada_ordenador==3 && jugada_usuario==2) printf("\n\n\tGana el ordenador\n");
        //Comprobamos los casos en los que gana el usuario
        if (jugada_usuario==1 && jugada_ordenador==3) printf("\n\n\tGana el usuario\n");
        if (jugada_usuario==2 && jugada_ordenador==1) printf("\n\n\tGana el usuario\n");
        if (jugada_usuario==3 && jugada_ordenador==2) printf("\n\n\tGana el usuario\n");
        //Comprobamos los empates
        if (jugada_ordenador==jugada_usuario) printf("\n\n\tHabeis empatado\n");

        //Esperamos un rato mostrando el resultado, limpiamos la pantalla y volvemos
        //a mostrar el menú.
        Sleep(3000);
        system("cls");
    }

    return 0;
}
El que quiera una versión un poco más complicada de este juego puede intentar programar el juego "Piedra, papel, tijera, lagarto, Spock" creado en la serie de TV "The big bang theory". Podéis encontrar los detalles en internet.

No hay comentarios:

Publicar un comentario