Programando SUMAS para CASIO FX-180P

Foro dedicado a la programación en todo tipo de sistemas clásicos.
dancresp
Amiga 1200
Amiga 1200
Mensajes: 1393
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 3 veces
Gracias recibidas: 20 veces

Programando SUMAS para CASIO FX-180P

Mensajepor dancresp » 04 Nov 2012, 19:47

EL PROGRAMA
La mecánica de este juego es muy simple.

La calculadora muestra dos números y tenemos que calcular su suma. Si aceptamos el resultado el juego sigue con números más grandes, y si no lo acertamos nos muestra la puntuación y finaliza el juego.

clip_image002.jpg
clip_image002.jpg (16.58 KiB) Visto 6032 veces


COMO FUNCIONA
El programa ocupa los 37 pasos de programación y usa dos registro K y la memoria M para almacenar valores y resultados.

En la memoria M guardamos el número máximo (la dificultad).
En el registro K-1 guardamos el resultado de la suma (que hay que descubrir).
En el registro K-2 guardamos la puntuación.

El programa se ha dividido en dos partes:
P1 – Inicialización de la dificultad (M) y la puntuación (K-2)
P2 – Bucle del juego que se repite mientras acertemos los resultados.

El programa se divide en 6 bloques, que he dividido en franjas de colores:
1º - Inicializar el número máximo (M) y los puntos.
2º - Incrementa dificultad, desactiva decimales y suma 1 punto.
3º - Calculamos el primer número y lo guardamos en K-1.
4º - Calcula el segundo número y lo añade al registro K-1.
5º - Entramos el resultado de la suma y lo restamos del número oculto (K-1).
6º - Este bloque se encarga de conseguir un 1 si lo hemos acertado y un 0 si hemos fallado. Si acertamos volvemos al principio del programa P2. Sino, activa los decimales y acaba el programa.


LISTADO LEARN

sumas_listado.gif
sumas_listado.gif (11.45 KiB) Visto 6032 veces


EJEMPLO
Para usar el programa hay que hacer lo siguiente:

P1 (aparece un -1 en pantalla)
P2
18 (Nos muestra el primer número)
27 (Nos muestra el segundo número)
45 (Introducimos el resultado. Como 18+27=45)
RUN (Comprueba si se ha acertado)
Si hemos acertado el número, la calculadora aumenta la dificultad y vuelve a mostrar dos nuevos números.
Si fallamos aparece la puntuación y el juego finaliza. Desaparece el P2 de la pantalla.


APUNTES FINALES
Desarrollar un programa así en un equipo como este es realmente complicado. Se junta un lenguaje muy simple con un equipo con muy poca memoria. Prueba superada.

Todo el proceso parte de un programa que desarrollé en los años 80. El problema de ese programa era el proceso de verificación se hacia comprobando que la M (de la memoria) desaparecía de la pantalla y no seguía automáticamente hasta fallar. En el año 2012 me propuse mejorarlo.

Para el correcto desarrollo del juego he tenido que desactivar los decimales con “MODE 70”. Lo que hace esto es ocultarlos aunque realmente están allí. Es preciso hacer un RND para igualar lo que aparece en pantalla con lo que se usa para hacer el cálculo, ya que sino funciona mal.

La principal dificultad de la programación del juego ha consistido en conseguir que el juego continúe si aciertas y finalice si fallas. La limitación de las condiciones de este equipo hacen que no sea sencillo, pero he desarrolla un método que funciona bien:

- Resto el número secreto al número que he entrado. Si se acierta el resultado es 0, sino, cualquier otro.
- Elevo el resultado al cuadrado para eliminar el signo y conseguir un número positivo, y a continuación lo hago negativo.
- En caso de haber acertado, el resultado es 0 y estos pasos no le afectan en nada.
- Sumo 1. Si he acertado tengo un 1 y afecta al “X>0”, en caso contrario tengo un número igual o inferior a 0 y acaba.

He dedicado varias horas en conseguir que funcione bien. Para ello he tenido que ir escribiendo y reescribiendo el código en papel, depurar y eliminar pasos que se podían simplificar, seleccionar el tipo de registro correcto para cada valor a guardar, etc.

Pues nada más, solo me queda…

Invitaros a probarlo

clip_image003.jpg
clip_image003.jpg (36.01 KiB) Visto 6032 veces
Buscando la IP de la W.O.P.R.

Avatar de Usuario
zitror
Amiga 2500
Amiga 2500
Mensajes: 5349
Registrado: 02 Jul 2006, 00:16
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
Ubicación: El interior de un Z80
Gracias dadas: 248 veces
Gracias recibidas: 104 veces
Contactar:

Re: Programando SUMAS para CASIO FX-180P

Mensajepor zitror » 04 Nov 2012, 20:16

¡Yo tuve una igualita! :D La tengo que buscar en casa de mis padres y probar el programita.

Muy chulo la hoja con el programa a boli, te lo currabas (y te lo curras) macho =D>

Gracias Dancresp y salu2 ;)
(C) 1.982 Sinclair Research Ltd

La buhardilla de Zitror

jepalza

Re: Programando SUMAS para CASIO FX-180P

Mensajepor jepalza » 04 Nov 2012, 20:19

¡No me digas que se podían hacer juegos simples para esta calculadora! Me sorprendes. :shock:

Yo me sabía aquel de "una chica de 19 año y un chico de 19 años fueron a .... bla. bla" con resultado "ELBEBE" leído del revés ;-)

dieguitron
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 158
Registrado: 04 Sep 2012, 18:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: PC
consola_favorita: Nintendo NES/Clónica
Primera consola: Nintendo GameBoy

Re: Programando SUMAS para CASIO FX-180P

Mensajepor dieguitron » 04 Nov 2012, 23:25

Flipao me dejas no tenia ni idea de que se pudira programar,solo conocia el de elbebe.

dancresp
Amiga 1200
Amiga 1200
Mensajes: 1393
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 3 veces
Gracias recibidas: 20 veces

Re: Programando SUMAS para CASIO FX-180P

Mensajepor dancresp » 04 Nov 2012, 23:40

zitror escribió:¡Yo tuve una igualita! :D La tengo que buscar en casa de mis padres y probar el programita.

Pues trata de recuperarla que es una calculadora muy curiosa.

jepalza escribió:¡No me digas que se podían hacer juegos simples para esta calculadora! Me sorprendes. :shock:

Pues ya ves, 38 pasos de memoria dan para esto y más.
Buscando la IP de la W.O.P.R.


Volver a “Programación”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados