Ir al contenido

Variable de contexto

Variable de contexto

En Wired Code: variable.context

Declara una variable temporal: vive solo mientras la pila se está ejecutando y desaparece al terminar.

Es el bloc de notas del sistema. Sirve para guardar un cálculo intermedio —una suma a medias, un valor que hay que comparar dos veces— sin ensuciar los datos de la sala ni de los jugadores.

Como no se guarda en ningún sitio, es la más barata de todas y la que puedes usar sin pensártelo.

“Mientras la pila se está ejecutando” se queda corto, y esta es la parte que abre la mitad de los montajes avanzados: la variable acompaña a toda la cadena de señales que salga de esa pila.

Si la pila A declara motivo y manda una señal, la pila B que la recibe ve motivo. Y la que B llame después, también. La cadena entera comparte el mismo bloc de notas.

Con Ejecuta Pilas pasa lo mismo, y de forma aún más directa: la llamada corre dentro de la misma ejecución.

Lo que no se comparte son las ramas hermanas. Si dos pilas escuchan la misma antena, cada una abre su propia rama: lo que declare una no lo ve la otra. Comparten lo que venía de antes, no lo que cada una añade.

Pila A declara motivo = 5
│
┌────┴────┐
▼ ▼
Pila B Pila C las dos ven motivo = 5
│
▼
Pila D también lo ve — viene de A por la rama de B

De ahí salen cuatro comportamientos que conviene tener claros, porque son exactamente los de un lenguaje de programación con bloques:

Lo que haces Lo que pasa
Leer, o Contiene variable Busca en esta pila; si no está, sube por la cadena
Dar variable sin sobrescribir Si ya existe en cualquier punto de la cadena, no hace nada
Dar variable con sobrescribir Declara una nueva aquí, que tapa la de arriba — y a partir de ese momento dejas de compartirla
Cambiar valor Modifica la que encuentre subiendo. Si no existe en ningún punto, no la crea: no hace nada
Eliminar variable Borra la que se ve. Si estaba arriba, las ramas hermanas también dejan de verla
Ventana de configuración de Variable de contexto

Nombre de la variable, cómo se llama.

Opciones de la variable, con Tiene valor.

Calcular un premio antes de darlo:

Caja de variable:
Variable de contexto [premio · tiene valor]
Pila A
│
├─ Causante: Sobre un Furni
│ └─ Elige Furni ............................. Alfombra de la meta
│
├─ Efecto: Dar variable
│ ├─ Escoge una variable ..................... premio (variable de contexto)
│ └─ Valor inicial ........................... 100
│
├─ Efecto: Cambiar valor de variable
│ ├─ Escoge una variable ..................... premio (ámbito contexto)
│ ├─ Escoge una operación .................... Multiplicación
│ └─ Valor de referencia ..................... racha (variable de usuario)
│
└─ Efecto: Cambiar valor de variable
├─ Escoge una variable ..................... puntos (ámbito usuario)
├─ Escoge una operación .................... Suma
└─ Valor de referencia ..................... premio (variable de contexto)

La caja solo declara el nombre: dentro de la ejecución premio no existe hasta que un Dar variable la crea. Un Cambiar valor sobre una variable de contexto que nadie ha dado no hace nada (ver la tabla de arriba), por eso el primer efecto de la pila es darla con su valor inicial.

No tiene opciones de disponibilidad porque no dura, y esa es toda su gracia: nada que limpiar, nada que se quede colgado entre partidas.

Es la que hay que usar para los cálculos. Guardar un valor intermedio en una variable permanente funciona, pero deja basura, cuesta más y se puede quedar a medias — mira la ejecución se puede cortar.

Y es la que hay que usar para pasar datos entre pilas. Con una variable de usuario tendrías que haber exactamente una persona en la cadena, y acordarte de borrarla después. De aquí salen las retrollamadas, y lo que pasa cuando una ejecución se abre en ramas está en Lo que vive durante la ejecución.