Las Tortugas bajo el Control de Programas

Los objetos que con mayor frecuencia se controlan mediante programas son las tortugas. Las primitivas que controlan a la tortuga son las más intuitivas y las que resultan más accesibles a los usuarios.

Tortuganueva es el mando que saca de su cascarón a una nueva tortuga. Su entrada es el nombre de la tortuga. No existen restricciones en cuanto al nombre que se le puede dar, con excepción de los nombres del vocabulario MicroMundos. Podemos también dejarle su nombre preestablecido (t1, t2,... etc.)

tortuganueva "pájaro

Cuando una tortuga recién sale de su cascarón es invisible. Antes de que aparezca se pueden establecer sus variables de estado. Sus variables de estado propias son: figura, posición, rumbo, tamaño, color de la pluma y ancho de la pluma. Por ejemplo, se puede establecer su figura, su posición y su rumbo antes de hacerla visible:

ffig "pájaro1 fpos [10 100] frumbo 45 mt

Si lo que se quiere es crear una bandada de pájaros, se deben usar las siguientes instrucciones:

da "pájaros [pájaro1 pájaro2 pájaro3 pájaro4] Crea una variable llamada pájaros.
cumplelista [i :pájaros] [tortuganueva :i ffigura "pájaro1] Cada tortuga es creada con un nombre diferente.
todas [mt] Hace aparecer a todas las tortugas nuevas.
pide [pájaro1 pájaro2 pájaro3] [frumbo (último quién) * 30] Da a cada tortuga un rumbo diferente ya que último quién devuelve el último carácter de la tortuga activa: un número entero.
todas [ad 100] Todas se mueven hacia adelante.

Finstrucción da una instrucción a la tortuga de la misma forma que se hace en una caja de diálogo. Lanza o porsiempre se utilizan en la instrucción para realizar las funciones de Una vez y Muchas veces. Ver El manejo de los Procesos. Finstrucción permite cambiar la instrucción de la tortuga "al vuelo":

finstrucción [lanza [ad 50]]

En ejemplo anterior, se puede asignar a cada pájaro una instrucción para aletear:

todas [finstrucción
     [porsiempre [ffig "pájaro1 ffig "pájaro2]]]

Enciende activa la instrucción de la tortuga. Equivale a hacer clic en la tortuga. Apaga detiene la instrucción de la tortuga. Mediante estos dos mandos, se puede poner a una tortuga que responde al clic bajo el control de un programa.

todas [enciende]
todas [apaga]

A los estados predeterminados de la tortuga (ver arriba), se pueden agregar nuevas variables de estado mediante el mando tortugastienen. Este concepto ya ha sido tratado en Las Variables. Tortugastienen crea un nuevo estado para cada una de las tortugas del proyecto:

tortugastienen "velocidad      Otorga a cada tortuga una variable llamada velocidad.

La entrada de tortugastienen se convierte en una variable que queda ligada a cada tortuga individual. Inicialmente la variable está vacía. Para asignarle un valor se utiliza fija más el nombre de la variable:

t1, fijavelocidad 2      Dice a la tortuga llamada t1 que fije su velocidad en 2.

t2, fija velocidad 10      Dice a la tortuga llamada t2 que fije su velocidad en 10.

Ahora, cuando se dé a las tortugas la instrucción, ad velocidad, t1 se moverá despacio mientras que t2 se moverá rápido.

pide [t1 t2] [finstrucción [porsiempre [ad velocidad]]]
pide [t1 t2] [enciende]

El nombre de la variable devuelve el valor de la variable de esa tortuga específica:

t1, muestra velocidad
2

También se puede obtener el valor de la variable tortugastienen utilizando la abreviatura ?:

muestra t2? "velocidad
10

Use el mando obtiene para obtener la lista de las variables y de sus valores correspondiente a la tortuga nombrada:

muestra obtiene "t1 "tiene      Muestra las variables tortugastienen para la tortuga t1.
velocidad 2
remueve "velocidad       Remueve la variable velocidad de todas las tortugas.

En el siguiente ejemplo, se puede utilizar tortugastienen para guardar la posición inicial de cada tortuga cuando hay muchas tortugas en la página:

tortugastienen "posinicial
todas [fijaposinicial pos]

Para que las tortugas vuelvan a su posición inicial después de ejecutar un programa:

todas [fpos posinicial]

El mando fija puede ser utilizado para controlar las instrucciones de la tortuga. También se pueden usar con este propósito los mandos finstrucción, enciende y apaga. Fija tambien cambia los estados visible o congelado de la tortuga. Et, mt, congela y descongela son las primitivas usuales.

El siguiente es un listado de todas las posibilidades:

Instrucciones

Equivale a

fija "t1 "regla [lanza [ad 1]] t1, finstrucción [lanza [ad 1]]
fija "t1 "activa? "cierto enciende
fija "t1 "activa? "falso apaga
fija "t1 "visible? "cierto mt
fija "t1 "visible? "falso et
fija "t1 "congelado? "cierto congela "t1
fija "t1 "congelado? "falso descongela "t1

El reportero obtiene puede ser utilizado para obtener información sobre los distintos estados de la tortuga, incluyendo aquellos creados con tortugastienen:

Expresión

Definición

obtiene "t1 "visible? Devuelve cierto o falso, dependiendo de si la tortuga está visible o nó.
obtiene "t1 "regla Devuelve la lista de instrucciones de la caja de diálogo de la tortuga.
obtiene "t1 "activa? Devuelve cierto o falso, dependiendo de si la tortuga ha sido activada con un clic o nó; por ej., al lanzar un proceso.
obtiene "t1 "tiene? Devuelve el valor de las variables de estado de tortugastienen para esta tortuga.
obtiene "t1 "congelado? Devuelve cierto o falso, dependiendo de si la tortuga está o nó congelada.

Tenga en cuenta que el área de Proyecto ofrece información visual acerca de todos los estados de la tortuga.