Este sitio utiliza cookies de Google para prestar sus servicios y analizar su tráfico. Tu dirección IP y user-agent se comparten con Google, junto con las métricas de rendimiento y de seguridad, para garantizar la calidad del servicio, generar estadísticas de uso y detectar y solucionar abusos.Más información

View site in english Ir a la página de inicio Contacta conmigo
viernes, 28 de abril de 2017

Autómatas celulares, aplicación WinCA II

Este es el segundo artículo de la serie sobre la aplicación WinCA, dedicada a la construcción y ejecución de autómatas celulares. En este artículo voy a mostrar como diseñar los estados en los que se pueden encontrar las células del autómata y las propiedades que se les pueden asignar a los mismos, utilizando los diferentes editores del programa.

Aquí puedes encontrar el primer artículo de la serie sobre la aplicación WinCA.

En este enlace puedes descargar los ejecutables de la aplicación WinCA, y en este otro puedes descargar el código fuente de la solución WinCA, escrita en CSharp con Visual Studio 2015.

Propiedades

Las propiedades son los valores que tienen asociados los estados. El color del estado, por ejemplo, es una propiedad. Pueden ser valores de tipo int, double, string, bool o Color. Otro ejemplo de propiedad, en el autómata que implementa el juego de la vida de Conway, es la que indica si la celda está viva o muerta, y es de tipo booleano. Todos los estados deberían tener las mismas propiedades, aunque sus valores pueden ser diferentes.

Para ver el editor de propiedades, podemos abrir el autómata del juego de la vida, el archivo Life-game.cauto en el directorio Examples, y pulsar el último botón de la primera barra de herramientas. Se abrirán diferentes editores, en el menú Ventana podemos seleccionar el que corresponde a las propiedades, que tiene el siguiente aspecto:

Editor de propiedades de la aplicación WinCA
Editor de propiedades de WinCA

Existen propiedades de valor constante y variable. En esta versión de la aplicación solo se utilizan las constantes. La diferencia es que las constantes no pueden cambiar de valor en tiempo de ejecución, mientras que las variables servirán para implementar autómatas con valores que pueden cambiar durante la ejecución, creando escenarios de mayor complejidad.

Para crear una propiedad, se debe seleccionar en primer lugar el tipo de datos en el desplegable de la barra de herramientas correspondiente. En tiempo de ejecución, el programa puede realizar la conversión al tipo de datos que resulte conveniente, ya que estas propiedades se utilizan en las expresiones que determinan los cambios de estado de la celda.

Una vez seleccionado el tipo de datos, se puede crear la propiedad con el botón de la izquierda del desplegable. El botón de la derecha sirve para eliminar las propiedades seleccionadas en la lista de debajo.

La propiedad aparecerá en la lista con un nombre por defecto. Al seleccionarla, aparecerán en la parte inferior los valores asociados con ella, que son el tipo de datos, que podemos cambiar, el valor por defecto de la propiedad, que dependerá del tipo de datos seleccionado, y el nombre asignado a la propiedad.

Podemos guardar las propiedades en un archivo independiente usando las opciones Guardar y Guardar como del menú Archivo. Esto puede ser útil si queremos utilizar el mismo conjunto de propiedades para varios autómatas diferentes.

En el menú archivo podemos también crear un conjunto de propiedades desde cero, con la opción Nuevo / Conjunto de propiedades, o abrir un conjunto de propiedades con la opción Abrir y seleccionando el tipo de archivo correspondiente.

Estados

Una vez definidas las propiedades, podemos pasar a definir los estados. Si has abierto un archivo de autómata, puedes seleccionar el editor de estados también desde el menú Ventana. Tiene el aspecto siguiente:

Editor de estados de la aplicación WinCA
Editor de estados de WinCA

En la barra de herramientas de la parte superior, podemos seleccionar en el desplegable el conjunto de propiedades asociado al estado de entre todos los que tengamos abiertos. Con el siguiente botón a la derecha del desplegable el se abrirá el editor de propiedades correspondiente.

El siguiente botón es para abrir el editor de transiciones entre estados, que veremos en el siguiente artículo, y el último botón permite mostrar el editor del autómata.

A la derecha de la ventana se encuentra la lista de estados. Se puede crear un nuevo estado usando el primer botón de la barra de herramientas que está encima de la lista de estados, y eliminar los estados seleccionados con el segundo botón.

Debajo de la lista podemos ver el editor del nombre y del color del estado. El desplegable del color mostrará todas las propiedades del conjunto seleccionado que sean de tipo color, y es obligatorio que todos los estados tengan un color asociado. Los nombres de estado deben ser únicos.

En la parte central se encuentra la lista con todas las propiedades disponibles. Para asociar propiedades a un estado se deben seleccionar en esta lista y usar el botón con la flecha > que se encuentra en la barra de herramientas que está encima de esta lista.

Por último, a la derecha se encuentra el editor de las propiedades del estado actual seleccionado en la lista de estados. Al seleccionar cualquiera de estas propiedades, podremos cambiar el valor asociado para este estado en el editor que hay debajo de la lista. También podemos quitar una propiedad del estado seleccionándola y usando el botón con la flecha < que está en la barra de herramientas correspondiente a esta lista.

Al igual que con las propiedades, podemos guardar los estados, junto con sus propiedades, en un archivo independiente mediante las opciones Guardar y Guardar como del menú Archivo, o crear un nuevo conjunto de estados con la opción Nuevo / Conjunto de estados.

En el siguiente artículo, mostraré la definición del lenguaje para definir las transiciones entre estados de las celdas.

Comparte este artículo: Compartir en Twitter Compártelo en Facebook Compartir en Google Plus Compartir en LinkedIn
Comentarios (1):
* (Su comentario será publicado después de la revisión)

E-Mail


Nombre


Web


Mensaje


CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code