Programando LIGHTS OUT para ORIC

dancresp
Mensajes: 5166
Registrado: 13 Nov 2010 02:08
Agradecido : 69 veces
Agradecimiento recibido: 134 veces

Programando LIGHTS OUT para ORIC

Mensajepor dancresp » 05 Ene 2012 00:14

LIGHTS OUT para ORIC 1/ATMOS

Imagen

EL JUEGO
El objetivo del juego consiste en apagar todos las luces rojas del tablero de juego.
Controlamos el puntero que aparece debajo de uno de los 25 cuadrados del tablero. Al pulsar espacio cambiaremos el estado de ese cuadrado y del que esta arriba, abajo, derecha e izquierda.
Al pulsar la tecla "H" (HELP) el ordenador elige hasta los 2 primeros movimientos, siempre que sean los primeros.
Al pulsar la tecla "R" (RESET) volveremos a la posición inicial del tablero.

El juego dispone de 10 niveles predefinidos, y a partir de aquí el ordenador genera tableros aleatorios sin disponibilidad de ayuda.

Descargar fichero WAV: Lights Out


BLOQUES
He dividido el listado en 9 bloques:

- Declaración de variables, inicialización del juego y calibrado del lápiz óptico.
- Impresión de los marcadores del juego.
- Selector del tablero correspondiente.
- Manda imprimir el tablero actual y el número de movimiento.
- Control de teclas.
- Control de la inversión de las luces correspondientes.
- Inversión de una luz.
- Impresión del tablero con las luces.
- Datos de los 10 primeros y tableros y datos de ayuda de tirada.


COMO FUNCIONA
Se ha conseguido condensar la mecánica del juego original en solo 42 lineas de código.

Se utilizan las siguientes variables:

M = Matriz donde se guardan los primeros 10 tableros.
S = Cadena donde se guarda el tablero actual.
A = Gráfico de la luz.
W = Matriz donde se guardan las dos primeras tiradas en caso de ayuda.
L = Tablero actual del juego.
M = Número de movimiento.
H = Contador de ayudas.
F = Bucles o Luz a invertir.
X = Posición horizontal del puntero.
Y = Posición vertical del puntero.
P = Contador de luces encendidas.
B = Número de luz que se ha pulsado.
N = Número de luz al imprimir el tablero.

100 - Definición de las matrices del juego.
110 - Inicio de variables y cargamos las lineas DATA en las matrices.

200 - Colores del juego, y hacemos desaparecer el cursor.
210 - Impresión del título a doble tamaño usando las secuencias de "escape" correspondientes.
220 - Copyright al pie de la pantalla.
230 - Impresión de los textos "(H)ELP!" y "(R)ESET".

300 - Impresión del marcador del nivel.
310 - Posición del puntero, número de movimientos (M) a 0, y si el nivel es mayor de 10 se salta a la linea 330.
320 - Descompone las 25 luces de la matriz (M) a la matriz S, y pone el contador de ayuda (H) a 1.
330 - Genera un tablero aleatoriamente y pone el contador de ayuda a 3, con lo que se inhabilita.

400 - Imprime el tablero con las 25 luces y si no hay luces encendidas salta a la linea 300.
410 - Imprime el número de movimiento.

500 - Imprime el puntero debajo de la luz correspondiente.
510 - Lee el teclado, si se pulsa una tecla borra el puntero, sino vuelve a leer el teclado.
520 - Si se pulsa "O" mueve el puntero a la derecha.
530 - Si se pulsa "P" mueve el puntero a la izquierda.
540 - Si se pulsa "Q" mueve el puntero hacia arriba.
550 - Si se pulsa "A" mueve el puntero hacia abajo.
560 - Si se pulsa espacio desactiva la ayuda, calcula la luz seleccionada y salta a 600.
570 - Si se pulsa "H" y el número de movimientos es inferior a 3, tira por nosotros.
580 - Si se pulsa "R" reinicializa el tablero.
590 - Si se pulsa "S" visualiza el cursor y sale del programa, sino salta a 500
600 - Invierte la luz sobre la que se ha pulsado.
610 - Si la luz no esta en la primera fila, invierte la luz de arriba.
620 - Si la luz no esta en la última fila, invierte la luz de abajo.
630 - Si la luz no esta en la última columna, invierte la luz de la derecha.
640 - Si la luz no esta en la primera columna, invierte la luz de la izquierda.
650 - Suma un movimiento (M) y salta a 400.

700 - Si la luz indicada por F esta encendida (=1) la pone a 0, sino la pone a 1.
710 - Acaba la subrutina.

800 - Pone el contador de luces encendidas (P) a 0 y N=1.
810 - Inicio del doble bucle que imprime el tablero.
820 - Si la luz a poner está activa activa el color rojo, sino activa el color blanco.
830 - Imprime la ficha en la posición correspondiente. Tiene un tamaño de 3x3.
840 - Incrementa el número de ficha (N) y cierra los bucles.
850 - Final de la subrutina.

900 - Datos de los tableros. Cada tablero se compone de una cadena de 25 números 1 ó 0, que indican el estado de una de las luces. A continuación se pasan dos números correspondientes a las 2 primeras tiradas que nos propondrá la máquina al pulsar sobre "HELP!". Si no hay ayuda, poner como 0,0.

Imagen

APUNTES FINALES
El juego es una conversión a ordenador de la máquina "LIGHTS OUT" de la casa TIGGER. Muy adictiva, por cierto.

Este es el primer juego que hago para el ORIC, y es una adaptación del mismo juego programado para el THOMSON MO5.

Esta versión es algo más rápida, pero ha perdido la gracia de usar el lápiz óptico.

Respecto al ORIC, su BASIC es bastante completo y rápido. El programa me ha servido para familiarizarme con su "extraño" editor, el cual he acabado usando sin grandes problemas, aunque ciertamente es un engorro. Por otro lado, empiezo a controlar su "peculiar" sistema de gestión de colores. Tiene tela. Es complejo y limita el desarrollo de según que cosas quieras hacer. Por otro lado, es curiosa la posibilidad de usar fuentes de doble altura. En resumen, ha sido toda una "experiencia iniciática" que tendrá continuación.

Resaltar que los CHR que aparecen en las lineas del PLOT se usan para indicar un color, pero en un PRINT tienen una función distinta. Otra de las "rarezas" del ORIC.

Para terminar, decir que todo ser humano debería tener la posibilidad, aunque solo fuera una vez, de usar el teclado del ORIC ATMOS. De los mejores que he tocado nunca. Pata negra.

Os invito a probarlo.

Imagen

Avatar de Usuario
ron
Mensajes: 17743
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 801 veces
Agradecimiento recibido: 860 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor ron » 05 Ene 2012 06:55

Bonitos regalos trae usted en forma de programa, ¿ es usted paje de los Reyes Magos ? o ¿ Usted es un Rey Mago ?

Apasionante. Verte contar las peculiaridades del Atmos me alucina y creo que deberían fabricar teclados para PC basados en las teclas del Atmos.

Gracias Dancresp

dancresp
Mensajes: 5166
Registrado: 13 Nov 2010 02:08
Agradecido : 69 veces
Agradecimiento recibido: 134 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor dancresp » 05 Ene 2012 09:16

He subido el fichero WAV por si alguien se quiere ahorrar el trabajo de teclearlo. Esta verificado y el ORIC lo carga perfectamente.

El enlace esta en el primer post.

Y si alguien lo pasa a TAP para cargar desde emulador, agradecido.

drachco
Mensajes: 224
Registrado: 03 Nov 2010 10:23
Agradecido : 2 veces
Agradecimiento recibido: 4 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor drachco » 05 Ene 2012 10:19

Gracias Dancresp!!.
Me quedé con las ganas de teclear la versión para el Thomson MO5 por que el pobre no arranca, pero esta para el Oric, no me la pierdo. Sacaré mi Oric 1 a ver que tal se porta y no me da un susto como el Thomson. :((

Avatar de Usuario
ron
Mensajes: 17743
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 801 veces
Agradecimiento recibido: 860 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor ron » 05 Ene 2012 10:42

De momento el WAV no me ha cargado, igual esta en el doble de velocidad y hay que hacerle algo, en principio no me va, tampoco digo que no vaya, lo miraré a ver.

dancresp
Mensajes: 5166
Registrado: 13 Nov 2010 02:08
Agradecido : 69 veces
Agradecimiento recibido: 134 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor dancresp » 05 Ene 2012 10:44

Lo probé y cargaba. Está en modo "fast".

¿Problemas de volumen?
¿Llega a salir el nombre "LIGHTS B" durante la carga?

Sino, lo volveré a subir pasado reyes, que hoy hay cabalgata.

Avatar de Usuario
Silicebit
Mensajes: 1382
Registrado: 16 May 2011 21:13
Ubicación: La buhardilla del silicio.
Agradecido : 44 veces
Agradecimiento recibido: 120 veces
Contactar:

Re: Programando LIGHTS OUT para ORIC

Mensajepor Silicebit » 05 Ene 2012 16:44

¡¡Genial dancresp!! Muchas gracias, lo probaré en cuanto tenga un poco de tiempo.

dancresp escribió:Respecto al ORIC, ....... El programa me ha servido para familiarizarme con su "extraño" editor, el cual he acabado usando sin grandes problemas, aunque ciertamente es un engorro.


Ya sabía yo que al final te hacías con él. !lol

dancresp escribió:Para terminar, decir que todo ser humano debería tener la posibilidad, aunque solo fuera una vez, de usar el teclado del ORIC ATMOS. De los mejores que he tocado nunca. Pata negra.

Es cierto, pocos teclados he visto y probado como el del Atmos, una maravilla.
El 6809 es el Rolls-Royce de los 8bits, el 6502 es el Mercedes, y el Z80 el SEAT 850. Sorry, but... I think different. :-P -0r1c -m3s3x -t4nd1 -cbmja YouTube

dancresp
Mensajes: 5166
Registrado: 13 Nov 2010 02:08
Agradecido : 69 veces
Agradecimiento recibido: 134 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor dancresp » 06 Ene 2012 23:37

ron escribió:De momento el WAV no me ha cargado, igual esta en el doble de velocidad y hay que hacerle algo, en principio no me va, tampoco digo que no vaya, lo miraré a ver.

Lo acabo de probar, y efectivamente con el WinAmp no me carga. Sale el nombre, pero parece que no detecta el fin de carga.

En cambio, con el "Grabador de Sonidos" del Windows carga a la perfección.

Alguien sabe porque puede ser?

Avatar de Usuario
ron
Mensajes: 17743
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 801 veces
Agradecimiento recibido: 860 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor ron » 07 Ene 2012 15:04

NI tampoco lo carga el MESS ni otra cosa, tengo que probar con el Grabador ese de güindous, ya te diré algo.

Avatar de Usuario
Taburoto
Mensajes: 1206
Registrado: 15 Mar 2011 00:40
Agradecido : 13 veces
Agradecimiento recibido: 68 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor Taburoto » 08 Ene 2012 17:34

Ayer probé a cargar Lights Out en mi Oric y no tuve ningun problema,fantastico programa,como todos los de Dancresp.

Pero desgraciadamente todo apunta que fue el ultimo programa que cargó mi oric......Anoche,despues de apagarlo/encenderlo,se quedó la pantalla en cuadrados blancos y asi se ha quedado.......

Que puede ser? La memoria?


Saludos!

Avatar de Usuario
ron
Mensajes: 17743
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 801 veces
Agradecimiento recibido: 860 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor ron » 08 Ene 2012 18:23

Vaya ! que mala chasca ! yo iba a probarlo en un rato, estoy terminando de recomponer todo este cuarto, y .. ( modo BROMA ) a ver si es que el WAV de Wally Dancresp tiene un virus oculto para ORIC.

Miraré a ver si veo algo de esos síntomas que cuentas, no obstante, yo te recomendaría abrir un hilo en el foro de Oric.

Saludos

Avatar de Usuario
Taburoto
Mensajes: 1206
Registrado: 15 Mar 2011 00:40
Agradecido : 13 veces
Agradecimiento recibido: 68 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor Taburoto » 07 Jun 2014 21:50

Como este programa fue el ultimo que cargé en mi oric antes de que cascase,hoy lo he vuelto a cargar en su nueva vida,ademas lo he salvado en DISCO!

Jejejeje...
Adjuntos
IMAG0593.jpg
Salvado!
IMAG0591.jpg
CLOAD""

dancresp
Mensajes: 5166
Registrado: 13 Nov 2010 02:08
Agradecido : 69 veces
Agradecimiento recibido: 134 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor dancresp » 08 Jun 2014 09:42

Taburoto escribió:Como este programa fue el ultimo que cargé en mi oric antes de que cascase,hoy lo he vuelto a cargar en su nueva vida,ademas lo he salvado en DISCO!

Pues mira, el último que cargaste, pero para mi fue el primero que programé. -shock

Avatar de Usuario
Taburoto
Mensajes: 1206
Registrado: 15 Mar 2011 00:40
Agradecido : 13 veces
Agradecimiento recibido: 68 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor Taburoto » 08 Jun 2014 09:52

Donde están los demas que no los encuentro?

Avatar de Usuario
ron
Mensajes: 17743
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 801 veces
Agradecimiento recibido: 860 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor ron » 08 Jun 2014 10:14

aquí el colega de scainetsoft suele colgarlos en Software DEV: viewforum.php?f=83
Por ejemplo , el Nuclear Invaders para Oric: viewtopic.php?f=83&t=200029452

Avatar de Usuario
Taburoto
Mensajes: 1206
Registrado: 15 Mar 2011 00:40
Agradecido : 13 veces
Agradecimiento recibido: 68 veces

Re: Programando LIGHTS OUT para ORIC

Mensajepor Taburoto » 08 Jun 2014 11:54

Bien,los voy a pasar todos a un disco recopilatorio


Volver a “Lenguajes de Programación y herramientas Dev”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado