Artículos

Reglas de Variables I

Tutorial de Utilización de Reglas de Variables aplicadas a una sesión. Parte I

Tutorial de Utilización de Reglas de Variables aplicadas a una sesión.

Hola, veamos, lo que voy ha explicar es como consecuencia de dar muchas vueltas a la cabeza y me parece que ya lo tengo, por lo menos la posibilidad de que en una sesión se ejecuten unas reglas un determinado número de veces definido por el creador de la sesión, en los conductores que lo necesitan, y otras reglas un indeterminado número de veces.

Cada uno de los conductores que intervienen en esta sesión tendrán una serie de reglas iniciales que se deberán, como he dicho antes, ejecutarse una sola vez, y el resto de acciones (reglas), n veces.

El ejemplo lo he realizado con Tom, pero puede aplicarse a cualquiera de los conductores que aparecen en la sesión.

Antes de nada indicar que es lo que tiene que hacer Tom:

Al inicio de la sesión Tom está aparcado en un depósito y debe de esperar a que otro tren cruce por encima de un trigger para que Tom comience su andadura, dicha espera, por supuesto la tiene que hacer sólo una vez, pues las reglas siguientes son cíclicas y se tendrán de ejecutar n veces.

En primer lugar, me he apuntado todo lo que tiene que hacer Tom tanto, una vez como n veces.

Luego lo único que hay que hacer es inicializar el conductor (en nuestro caso Tom), con la loco que tiene que llevar sin incluirle ninguna regla, dentro de la regla de configuración de maquinista, tal y como se ve en la primera imagen.

El resto lo he dejado como estaba para ver como funciona, quitando las reglas, que no son necesarias, en nuestro caso las de Tom.



Después de configurar el maquinista añado una regla de lista ordenada con la siguiente configuración.



La lista ordenada se configura para que sólo se ejecute una sola vez. En esta regla añadiremos la inicialización de las variables tabuladas, metidas para la derecha una vez para que estén asociadas a esta regla de lista ordenada, es importante incluir en este punto una regla de lista ordenada, para que lo primero que realice es la inicialización de las variables, que nos van a servir posteriormente para evaluar lo que se tiene que ejecutar una sola vez y lo que se tiene que ejecuta n veces, este es un ejemplo de utilización de reglas de variables, que nos permitirá conocer un poco más sobre la utilización de dichas reglas, muy interesantes y muy versátiles.

El concepto de variables es muy utilizado en el ámbito de la programación informática y podemos definirla como un lugar de almacenamiento con nombre que puede contener cierto tipo de datos que se podrán modificar durante la ejecución del programa (en nuestro caso sesión). Cada variable tiene un nombre único que la identifica dentro del programa (sesión). Para que una variable tenga un nombre propio primero hay que declararla, crearla (utilización de la regla Variable Show).

Normalmente el nombre de una variable debe de empezar con un carácter alfabético, debe ser único dentro del mismo ámbito (sesión), no debe de contener más de 255 caracteres y no puede contener ningún signo de puntuación. Tampoco puede coincidir su nombre con una palabra reservada de
Trainz.

Las variables en en ámbito de Trainz siempre tienen un tipo definido, que significa que sólo se podrán guardar valores que cumplan unas condiciones determinadas.

Con referencia a Trainz, el tipo de variables que se pueden guardar, son aquéllas que se definen como Integer (entero), que es un tipo de dato que almacena números enteros positivos y negativos dentro del intervalo que va desde el –32768 hasta el 32768.

Se podría definir como vida de una variable, el tiempo durante el cual ésta conserva algún valor. El valor de una variable puede cambiar a lo largo de su vida (regla Variable Modify).

El sentido de la utilización de una variable (reglas de variables), es saber en cada momento como se puede comportar dicha variable y que valor tiene en cada momento de su vida (regla Variable Check).

La forma de hacer desaparecer una variable Trainz puede ser o a través de la finalización de la sesión (tanto forzada como programada a través de la misma sesión con la regla End Scenario), o a través de la eliminación de dicha variable dentro de la misma sesión (con la regla Variable Show).

Bueno, después de esta disertación sobre variables, continúo con la definición de la regla de Lista Ordenada.

Selecciono como se ve en la imagen de abajo, la opción de que la lista de tareas se ejecute una sola vez, para que tenga una vista más detallada y más específica que lo que estoy haciendo, he cambiado el enunciado de la regla y he colocado la etiqueta "Creación e inicialización de variables de maquinista"
como se ve en la parte superior de la imagen siguiente:



El siguiente paso después de modificar a mi gusto la regla de lista ordenada, es añadir una regla de mostrar variable (Variable Show), para crear una variable, que utilizaré para controlar las veces que se tiene que ejecutar una serie de operaciones, es importante e indispensable utilizar esta regla antes de dar valor a una variable (inicializar), a un valor determinado, pues sino, dicha variable no se podría utilizar, porque no existiría.



Después de añadir la regla (Variable Show), la configuro para que pueda ser utilizada con un nombre único, en este caso he creado una variable que se llama vtom que aparecerá en el HUD del la pantalla (si lo mostrase), con la leyenda "Inicio_Tom", ya puedo trabajar con la variable vtom y asignarle valores.

Como se ve en la imagen también le he puesto un título para saber sin tener que entrar
en la configuración de la regla de que trata dicha regla, en este caso le he puesto "Variable inicio Tom".



Bueno, después de crear la variable, necesito una regla para poder asignarle a esta variable un valor inicial con el que empezaré a trabajar, en este caso voy a utilizar la regla Modify Variable (modificar variable que la añado a renglón seguido de la regla Variable Show (mostrar o crear variable).



Después de añadir dicha regla la tengo que modificar en su configuración para que me haga lo que quiero, en este caso lo que quiero es que la variable vtom creada más arriba tenga un valor inicial de 0 por lo tanto, asigno a la variable el valor cero, como aparece en la primera línea justo después del título
(Modify Score).

Change variable vtom to 0 - Cambiar variable vtom a valor 0

Dejo las opciones restantes como están por defecto.

También cambio el nombre de la regla a "Modificar Variable Tom" para saber lo que hace esta regla.



Bueno, ya tengo la variable vtom inicializada y con un valor predeterminado.

Hay que tener en cuenta que se debe utilizar una lista ordenada en la que la creación de una variable, o varias, debe de esta antes que la asignación de valores a esas variables, esto es necesario porque la ejecución de las reglas por parte de una sesión, cuando están al mismo nivel, se ejecutan simultáneamente y no siempre en el mismo orden, lo que supondría que algunas veces se podría
dar el caso de asignar valores a una variable cuando ésta todavía no existe, dando error, por lo tanto es importante ejecutar dichas reglas de una forma ordenada (primero crea, después asigna), lo que se consigue con la regla de lista ordenada.

Bueno ya hemos conseguido que Tom tenga una variable con la que controle que reglas va a ejecutar una sola vez y que reglas ejecutará n veces.

¿Como se consigue esto?.

En el siguiente capítulo lo seguiremos explicando.

manweb 03-07-2020 395 leen 2 comentarios Imprimir

2 comentarios

Deja un comentario

Debes iniciar sesión para publicar un comentario.
  • Ishie
    Hello Manuel --

    Excellent -- This is a rule that I have been exploring for my sessions, and you made it much more easier now to accomplish using this rule!

    Thank you sir!!!
    Ish
    - 03/07/2020
    • M
      Thankyou Ishie for your comments.<br /><br />My best wishes<br /><br />Manuel
      - 03/07/2020