Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- * Title : PINTA BUSCAMINAS
- * Written by : FULGENCIO
- * Date : ABRIL 2018
- * Description: Buscaminas mod TEXTO a partir de un MAPA
- *-----------------------------------------------------------
- LF EQU $0A *Avance línea
- CR EQU $0D *Retorno carro
- WHITE EQU $FFFFFF
- ORG $1000
- START:
- MOVE.L #21,D0
- MOVE.L #WHITE,D1
- MOVE.L #$031E0000,D2 *Texto Courier, tamaño 30=$1E
- TRAP #15
- MOVE.L #MAPA,A3
- MOVE.L #MASCARA,A4
- CLR.L D2 *D2 nos cuenta las filas. Empieza en 0
- BUCLE
- MOVE.B (A3)+,D1 *Tomamos valor del mapa del laberinto
- MOVE.B (A4)+,D0 *Tomamos valor de máscara 0=oculto
- CMP.B #64,D1 *Utilizo el valor 64 para cambiar de línea
- BEQ OTRALINEA
- CMP.B #0,D0 *Comprueba ne la mascara si está oculto=0
- BEQ OCULTO *Si es 0 se muestra asterisco (*)
- CMP.B #16,D1
- BEQ BOMBA
- ADD.L #$30,D1 *Pasa a ASCII
- JSR PINTA
- JMP BUCLE
- BOMBA
- MOVE.L #'X',D1
- JSR PINTA
- JMP BUCLE
- OCULTO MOVE.B #'*',D1
- JSR PINTA
- JMP BUCLE
- OTRALINEA
- MOVE.L #14,D0
- MOVE.L #SALTOLIN,A1
- TRAP #15
- ADD.L #1,D2 *Avanza fila
- CMP.L #8,D2 *Límite en 8 filas
- BNE BUCLE
- SIMHALT
- PINTA
- CMP.B #'0',D1
- BNE NOCERO
- MOVE.B #' ',D1 *Sustituye '0' por espacio
- NOCERO
- MOVE.L #6,D0 *Pinta el caracter que está en D1
- TRAP #15
- RTS
- * Put program code here
- SIMHALT ; halt simulator
- * Put variables and constants here
- SALTOLIN DC.B LF,CR,0 *Estos códigos ASCII son necesarios para saltar de línea
- *En el mapa tengo los valores internos de todas las casillas. Para detectar cuando cambiar
- *de línea, utilizo una columna auxiliar, a cuyos elementos les asigno un valor 64
- MAPA DC.B 1,16,2,16,1,0,1,1,64
- DC.B 1,1,2,1,1,0,1,16,64
- DC.B 0,0,0,0,0,0,1,1,64
- DC.B 0,0,0,1,1,1,0,0,64
- DC.B 0,0,0,1,16,1,0,0,64
- DC.B 0,1,2,3,2,2,1,1,64
- DC.B 1,2,16,16,1,2,16,3,64
- DC.B 1,16,3,2,1,2,16,16,64
- *La máscara es otro mapa que me indicará qué casillas están descubiertas y por tanto son visibles
- *Un cero significa oculta y un 1 indicará que está visible
- MASCARA DC.B 0,0,0,0,0,0,0,0,64
- DC.B 1,1,1,1,1,1,1,0,64
- DC.B 1,1,1,0,0,0,0,0,64
- DC.B 1,1,1,0,0,0,0,0,64
- DC.B 0,0,0,1,0,0,0,0,64
- DC.B 0,0,0,0,0,0,0,0,64
- DC.B 0,0,0,0,0,0,0,0,64
- DC.B 0,0,0,0,0,0,0,0,64
- END START ; last line of source
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement