• Lenguaje

    C

  • Descripción

    Juego del ahorcado para adivinar nombres de países.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <time.h>
#include <conio.h>
#ifdef __TURBOC__
    #define _getch getch
#endif

static int oportunidades = 6;

int main(void)
{
    char *palabras[] =
    {
        "Argentina",
        "Belice",
        "Bolivia",
        "Brasil",
        "Canada",
        "Colombia",
        "Cuba",
        "Chile",
        "Ecuador",
        "El Salvador",
        "Espa\244a",
        "Estados Unidos",
        "Guatemala",
        "Haiti",
        "Honduras",
        "Mexico",
        "Panama",
        "Paraguay",
        "Peru",
        "Puerto Rico",
        "Republica Dominicana",
        "Uruguay",
        "Venezuela"
    };
    char *palabra, *casillas, letra, caracter, cabeza=' ', cuerpo = ' ',
          mano_izquierda = ' ', mano_derecha = ' ', pie_izquierdo = ' ',
          pie_derecho = ' ';
    int i, n, turnos = 0, aciertos = 0, encontrado;
    srand ((unsigned) time (NULL));
    palabra = palabras[rand()%(sizeof (palabras) / sizeof (palabras[0]))];
    n = strlen (palabra);
    casillas = (char*) malloc (n);
    for (i=0; i<n; i++)
        casillas[i] = '_';
    do {
        printf ("\nOportunidades restantes: %d\n", oportunidades-turnos);
        for (i=0; i<n; i++)
            printf (" %c", casillas[i]);
        printf ("\nEscriba una letra: ");
        letra = (char) _getch ();
        printf ("%c\n", letra);
        encontrado = 0;
        for (i=0; i<n; i++) {
            caracter = palabra[i];
            if (toupper(letra)==toupper(caracter))
            {
                encontrado = 1;
                if (casillas[i]=='_')
                {
                    casillas[i] = caracter;
                    aciertos++;
                }
            }
        }
        if (encontrado==0)
        {
            turnos++;
            printf ("Letra no encontrada.\n");
            switch (turnos)
            {
                case 1: cabeza         = '\1'; break;
                case 2: cuerpo         = '\305' ; break;
                case 3: mano_derecha   = '/' ; break;
                case 4: mano_izquierda = '\\'; break;
                case 5: pie_derecho    = '/' ; break;
                case 6: pie_izquierdo  = '\\'; break;
            }
        }
        printf ("     %c \n", cabeza);
        printf ("    %c%c%c\n", mano_derecha, cuerpo, mano_izquierda);
        printf ("    %c %c\n\n", pie_derecho, pie_izquierdo);
    } while (turnos<oportunidades&&aciertos<n);
    if (aciertos==n)
        printf ("Felicidades, has ganado.");
    else
        printf ("Has perdido.");
    printf ("\nLa palabra secreta es: %s\n\n\n", palabra);
    system ("pause");
    return EXIT_SUCCESS;
}