• Lenguaje

    Pascal

  • 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
98
99
program ahorcado;
uses crt;

const oportunidades = 6;

const palabras : array[0..22] of string = (
    'Argentina',
    'Belice',
    'Bolivia',
    'Brasil',
    'Canada',
    'Colombia',
    'Cuba',
    'Chile',
    'Ecuador',
    'El Salvador',
    'Espa'#164'a',
    'Estados Unidos',
    'Guatemala',
    'Haiti',
    'Honduras',
    'Mexico',
    'Panama',
    'Paraguay',
    'Peru',
    'Puerto Rico',
    'Republica Dominicana',
    'Uruguay',
    'Venezuela'
    );

var casillas, palabra : string;
var letra, caracter, cabeza, cuerpo, mano_izquierda,
    mano_derecha, pie_izquierdo, pie_derecho : char;
var i, n, turnos, aciertos : integer;
var encontrado : boolean;

begin
    cabeza := ' ';
    cuerpo := ' ';
    mano_izquierda := ' ';
    mano_derecha := ' ';
    pie_izquierdo := ' ';
    pie_derecho := ' ';
    turnos := 0;
    aciertos := 0;
    casillas := '';
    randomize;
    palabra := palabras[random(sizeof (palabras) div sizeof (string))];
    n := length (palabra);
    for i:=0 to n-1 do
        casillas := casillas + '_';
    repeat
        writeln (#10#13'Oportunidades restantes: ', oportunidades-turnos);
        for i:=1 to n do
            write (' ', casillas[i]);
        write (#10#13'Escriba una letra: ');
        letra := readkey;
        writeln (letra);
        encontrado := false;
        for i:=1 to n do
        begin
            caracter := palabra[i];
            if upcase (letra) = upcase (caracter) then
            begin
                encontrado := true;
                if casillas[i] = '_' then
                begin
                    casillas[i] := caracter;
                    inc (aciertos);
                end;
            end;
        end;
        if not encontrado then
        begin
            inc (turnos);
            writeln ('Letra no encontrada.');
            case turnos of
                1: cabeza         := #1;
                2: cuerpo         := #197;
                3: mano_derecha   := '/';
                4: mano_izquierda := '\';
                5: pie_derecho    := '/';
                6: pie_izquierdo  := '\';
            end;
        end;
        writeln ('     ', cabeza, ' ');
        writeln ('    ', mano_derecha, cuerpo, mano_izquierda);
        writeln ('    ', pie_derecho, ' ', pie_izquierdo, #10#13);
    until (turnos >= oportunidades) or (aciertos >= n);
    if aciertos = n then
        writeln ('Felicidades, has ganado.')
    else
        writeln ('Has perdido.');
    writeln ('La palabra secreta es: ', palabra);
    write (#10#13#10#13'Presione una tecla para terminar . . . ');
    letra := readkey;
end.