Ahorcado en EMU8086

Páginas: 5 (1146 palabras) Publicado: 1 de mayo de 2015

Introducción
En este trabajo práctico vamos a implementar un juego de palabras donde un usuario tiene que ingresar una palabra y otro tiene que adivinarla Al ingresar la palabra oculta se muestra un asterisco por cada letra. Luego el que adivina debe escribir una palabra con la misma cantidad de letras y dependiendo de las coincidencias con la palabra oculta, se muestra cuantas letrascoinciden con la palabra original en la posición correcta (BIEN), y cuantas letras coinciden pero están en una posición incorrecta (REGULAR).
El que adivina tiene 10 intentos para encontrar la palabra oculta.
Procedimiento
Según lo propuesto en el enunciado, la descripción en pseudocódigo del juego podría ser la siguiente:
>>ingresar la palabra oculta
>>mientas BIEN es distinto de LONGITUD e INTENTOS>0
>>arriesgar palabra
>>marcar y contar letras BIEN y REGULAR
>>escribir cantidades BIEN y REGULAR
>>restar uno a INTENTOS
>>fin mientras
>>si BIEN es igual a LONGITUD
>>mostrar mensaje GANO
>>si no
>>mostrar mensaje PERIDO
>>fin si
Para esto, hemos realizado el procedimiento CONTADOR, COPIAR y APARTE:
CONTADOR
Llama a los OFFSET de los textos a escribir y los mueve al registro DX, para quesean levantados por INT21h AH=9 y que sea mostrado por pantalla.
Este contador muestra en la misma línea la cantidad de letras BIEN y la cantidad de letras REGULAR que chequea el programa principal revisando letra a letra las palabras ingresadas.

COPIAR
Crea una copia de la palabra oculta que el programa principal utiliza para chequear posición a posición si las letras de la palabra que searriesgan están en la palabra oculta, y así poder reemplazarla con un ‘*’ para no volverla a contar:

APARTE
Tras varias ejecuciones del programa, nos vimos con la necesidad de crear un procedimiento que, tras el ingreso de cada palabra, hiciera un salto de línea. Para esto, hemos realizado dos llamadas a la INT 21h, la primera ingresando el valor en hexadecimal correspondiente al código ASCII de‘NEWL’ que pasa el cursor a la línea siguiente a la misma altura del final de la línea anterior, y la segunda al código ASCII de ‘CRET’ que posiciona el cursor en el comiendo de la nueva línea.


Para el ingreso de la palabra oculta se utilizó el registro SI como puntero, el cual actúa como índice de las posiciones de OCULTA para llenar con las llamadas a la INT 21H AH=7. Al aumentar el valor de SI,incrementa LONGITUD.
En cada iteración se realizan dos validaciones: la primera por el máximo de caracteres permitidos, la cual se controla comparando el valor de LONGITUD con MAXLONG; la segundo por la tecla ingresada, la cual verifica si el usuario presionó la tecla ‘enter’. Si ninguna de estas validaciones se cumple, el programa llama a la INT 21h AH=9 para mostrar un ‘*’ por pantalla, casocontrario, se inicia el arriesgo de palabras.

Para el ingreso de las palabras arriesgadas por el usuario, se hace un llamado al procedimiento APARTE para escribir en una nueva línea la palabra arriesgada.
Se creó la variable LONGITUD_A para controlar que la longitud de esta nueva palabra no supere la longitud de la palabra oculta. Como en el caso del ingreso de la palabra oculta, se utilizó elregistro SI como puntero de INTENTO para llenar las posiciones con las llamadas a la INT21h AH=1. Al incrementar SI, se incrementa LONGITUD_A.
En cada iteración se realizan dos validaciones: la primera por la longitud de la palabra arriesgada, la cual se controla comparando las longitudes de la palabra oculta y la ingresada; la segunda por la tecla ingresada, la cual verifica si el usuariopresionó la tecla ‘enter’. Cuando alguna de estas validaciones se cumple, el programa comienza a chequear las letras de ambas palabras.

Para el contador de letras acertadas en la posición correcta (BIEN) y/o en otra posición de la palabra (REGULAR), se optó por utilizar una cadena de tres caracteres contaran la cantidad de letras BIEN y otros tres para la cantidad de letras regular:

Por este...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Ahorcado
  • Ahorcamiento
  • Ahorcado
  • Ahorcamiento
  • Ahorcamiento
  • Ahorcamiento
  • Ahorcamiento
  • Ahorcado

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS