Secuencias de memoria
El programa genera una secuencia de colores, la muestra al jugador y valida cada click contra la posición esperada en la ronda.
Juego de memoria desarrollado en Assembly 8086 para emu8086. El proyecto recrea la dinámica de Simon Dice con interfaz en modo texto, regiones coloreadas mediante servicios de video BIOS INT 10h, mouse, niveles, dificultad progresiva, puntaje y pantallas completas de victoria o derrota.
No es solo un juego: es una muestra de control de hardware virtual, flujo de ejecución, estado de juego y UI sin librerías modernas.
El programa genera una secuencia de colores, la muestra al jugador y valida cada click contra la posición esperada en la ronda.
Detecta clicks y coordenadas para decidir si el usuario presionó el cuadrante gris, azul, rojo o verde.
Maneja puntaje, nivel, dificultad fácil/media/difícil y un modo automático que ajusta la velocidad durante la partida.
El valor del proyecto está en resolver una experiencia interactiva usando recursos muy cercanos al sistema, priorizando modo texto por rendimiento frente al dibujo gráfico pixel-by-pixel en emu8086.
Usa servicios BIOS y DOS para construir la pantalla en modo texto, mover cursor, imprimir texto, leer tiempo, esperar y controlar mouse.
Define macros para pintar regiones, mover cursor e imprimir caracteres repetidos, reduciendo repetición en las pantallas.
Construye pantallas completas en modo texto con rectángulos de color, mensajes centrados, carga visual, menú de dificultad y tablero del juego, evitando dibujar píxel por píxel en modo gráfico.
Construye secuencias usando tiempo, semillas y operaciones aritméticas para producir valores que representan colores.
Las macros muestran cómo se abstraen operaciones repetidas de la interfaz en modo texto: pintar regiones, mover el cursor y reutilizar servicios de video BIOS sin dibujar píxeles individualmente.
paint macro x1, y1, x2, y2, color
mov al, 0d
mov ah, 06h
mov bh, color
mov ch, y1
mov cl, x1
mov dh, y2
mov dl, x2
int 10h
endm
movecursor macro x, y
mov ah, 02h
mov bh, 0d
mov dh, y
mov dl, x
int 10h
endm
Crear una interfaz jugable sin HTML, CSS, canvas ni librerías obliga a pensar en coordenadas de modo texto, regiones, atributos de color y flujo de pantalla.
El juego exige administrar arrays, índices, dificultad, secuencias, intentos, puntaje y reinicio sin estructuras de alto nivel.
El siguiente paso sería extraer constantes con EQU, ordenar mejor las rutinas y cuidar más la simetría entre push/pop para robustez.