Práctica 0. Ejercicios propuestos



 Juego de la clave secreta.

El juego consiste en buscar una clave compuesta por cuatro cifras. Para ello es necesario ir introduciendo pruebas sobre la clave. El programa indicará cuantos muertos y cuantos heridos hay. Un muerto indica que una cifra pertenece a la clave y además está en el lugar correcto. Un herido indica que la cifra pertenece a la clave pero no está en su lugar.

Ejemplo:

    Clave : 4481

Pruebas:

     1284 1 muerto y 2 heridos
     1244 0 muertos y 3 heridos
     1844 0 muertos y 4 heridos
     1482 2 muertos y 1 herido
     1484 2 muertos y 2 heridos
     4418 2 muertos y 2 heridos
     4481 4 muertos y 0 heridos


 El juego de las películas

Consiste en adivinar el título de una película. Para ello se informa del número de palabras y de letras por palabra que constituyen el título. El jugador tantea la presencia de una determinada letra en el título. Si no está, se incrementa el número de fallos, si aparece se indica donde, tantas veces como aparezca. El juego termina bien cuando se ha completado el título, bien cuando se han tenido 10 fallos.

Realizar un programa que lleve a cabo este juego con las siguientes especificaciones:

Ejemplo:

        --- ------ -- ----                      Fallos:
S
        --S -----S -- ----                    Fallos:0
E
        --S E---ES -E ----                 Fallos:0
D
        --S ED-DES DE ----             Fallos:0
B
        --S ED-DES DE ----             Fallos:1   B
U
        --S ED-DES DE -U-U          Fallos:1   B
E
        --S ED-DES DE -U-U          Fallos:1   B
N
        --S ED-DES DE -U-U          Fallos:1   B
O
        --S ED-DES DE -U-U          Fallos:2   BO
S
        --S ED-DES DE -U-U          Fallos:2   BO
M
        --S ED-DES DE -U-U          Fallos:3   BOM
I
        --S ED-DES DE -U-U          Fallos:4   BOMI
C
        --S ED-DES DE -U-U          Fallos:5   BOMIC
A
        -AS EDADES DE -U-U       Fallos:5   BOMIC
S
        -AS EDADES DE -U-U       Fallos:5   BOMIC
A
        -AS EDADES DE -U-U       Fallos:5   BOMIC
L
        LAS EDADES DE LULU     Fallos:5   BOMIC

              ¡¡¡  Enhorabuena, acertaste  !!!


  Recursos del sistema necesarios en estos ejercicios
 

El DOS y el BIOS del PC proveen de algunas rutinas de servicio que se pueden utilizar para incrementar la versatilidad de los programas del usuario. A estas rutinas se las llama utilizando las características de la interrupción por software del microprocesador 8086.


Fin de programa

    INT 21H AX = 4C00H

Descripción: Esta rutina finalizará el programa y devolverá el control al DOS. Debe llamar a esta rutina para finalizar los programas.
Uso:    Entrada:   AX = 4C00H
            Salida:     Ninguna
           Registros afectados:   Ninguno 
Status del teclado

    INT 21H AH = 0BH

Descripción: La función de esta rutina es detectar si se ha pulsado una tecla.

Uso:    Entrada:  AH = 0BH
           Salida:    AL = FF si caracter disponible
                           AL = 0 si caracter no disponible
           Registros afectados:    AL


Entrada de un carácter desde teclado

    INT 21H AH = 8H

Descripción: La función de esta rutina es esperar un carácter del teclado sin escribirlo por pantalla y almacenarlo en el
registro AL en forma de código ASCII.

Uso:    Entrada:   AH = 8H
            Salida:    AL = car cter ASCII de la tecla pulsada
            Registros afectados:   AL


Leer una línea de programa

    INT 21H AH = 0AH

Descripción: La función de esta rutina es la de obtener una línea de datos del teclado (que finaliza al pulsar el retorno de
carro) y almacenarlos en un  rea de memoria. Los caracteres son mostrados en la pantalla al ser tecleados.

Uso:    Entrada:   AH = 0AH
                            DS contiene la dirección del segmento de memoria en el cual se almacenan los datos introducidos.
                            DX contiene la dirección del offset de la zona de memoria del segmento anterior en la que se almacenan
                            los datos.
                            En el primer byte del área debe indicarse el máximo número de caracteres a introducir sin superar 255.
            Salida:     Ninguna en registro
                            En el segundo byte del área se almacena el número de caracteres tecleados sin contar el retorno de carro.
            Registros afectados:  Ninguno


Salida de un carácter por pantalla

    INT 21H AH = 2H

Descripción: La función de esta rutina es visualizar un carácter.

Uso:    Entrada:  AH = 2H
                            DL contiene el código ASCII del carácter a visualizar.
            Salida:    Ninguna
            Registros afectados:  Ninguno


Sacar un string a la pantalla

    INT 21H AH = 9H

Descripción: Su función es la de sacar una cadena de caracteres ASCII por pantalla.

Uso:    Entrada:   AH = 9H
                            DS contiene el valor de la dirección del segmento del comienzo de la cadena de caracteres a sacar.
                            DX contiene el offset de dicha cadena en el segmento anterior.
                            El último byte de la cadena de caracteres debe ser el caracter $, que no se muestra en pantalla.
            Salida:      Ninguna
            Registros afectados:   AX


Códigos ANSI

Esc[2J
     Borra la pantalla
Esc[x;yf
     Posiciona el cursor en las coordenadas x, y.

El caracter Esc es el código escape cuyo valor ASCII es el 27 (1BH).