Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



Mostrando entradas con la etiqueta command. Mostrar todas las entradas
Mostrando entradas con la etiqueta command. Mostrar todas las entradas

domingo, 31 de mayo de 2020

Como crear tu propio lenguaje de programacion interpretado: mini-interpreteCAD


Como crear tu propio lenguaje de programación interpretado: mini-interpreteCAD 


¿como crear un lenguaje de programación?
Pues usando Gambas3 y el patron Command, he hecho este pequeño ejemplo de un programa para CAD. He creado una serie de reglas (comandos), tanto para dibujar, como para llevar el flujo del programa (orden tipicas Si,Repite,Mientras)

Ordenes disponibles [version 0.0.7]:





Lo mejor que tiene: es programa es fácilmente ampliable a nuevas ordenes, y con la potencia de la orden Eval() de gambas3, podemos crearla.

Video de ejemplo de uso:




Codigo fuente:

https://github.com/jsbsan/microinterprete





























domingo, 3 de noviembre de 2013

Patrón Command: Implementar Deshacer y Rehacer Órdenes

Patrón Command:

Ejemplo: 

Implementar Deshacer y Rehace Órdenes


¿para que sirve esta patrón?

1) Encapsular peticiones en forma de objetos. 

2) Permite parametrizar a los clientes con distintas peticiones, hacer colas de peticiones, llevar un 
registro de la peticiones realizadas, y deshacer el efecto de las peticiones

Esquema: Estructura del patrón

Diagrama de Secuencia: 

Representación gráfica de como interactúan estos objetos entre sí



Ejemplo de esquema para procesador de texto:




Ejemplo:
Tenemos un tablero de juego, donde tieness  las ordenes Insertar vallas y  Mover animales. Hay que implementar un deshacer y rehacer.

Estructura del proyecto:


La clase Comando:
->

La clases que heredan de comando:
La clase Insertar
->
La clase Mover
->
Las clases insertar y mover, lo que van ha hacer internamente es llamar a los métodos de la clase tablero para que se realicen las operaciones.

 La clase Tablero
->

El programa principal.
->
Los comandos se añaden a sus respectivos arrays (colaDeshacer y colaRehacer), donde se almacenan como una cola: los comandos se van añadiendo y para sacar se saca siempre el ultimo añadido.
Nota:
Como veis he añadido dos listbox, para mostrar lo que se esta haciendo en el tablero, tanto comandos realizados como deshechos.


Vista de la aplicación ejecutándose:


Enlace de descarga de la aplicación: descarga en box.com



Fuente: