# MSWLogo

MSWLogo es un software libre cuya utilidad es programar, con LOGO, una controladora para circuitos o bien, simplemente, programar la "tortuga" y darle instrucciones para que las ejecute.

## Índice del programa

El programa trabaja con tres ventanas:

### Ventana de trabajo

En esta la ventana el usuario escribe órdenes directas que solamente se guardan en el historial, por lo que no se pueden enlazar órdenes que ejecuten acciones "simultáneas". En esta ventana se localizan unos botones muy útiles y prácticos que facilitan al usuario la rápida ejecución de determinadas órdenes, acciones o instrucciones.

#### Alto

Detiene el procedimiento en ejecución.

#### Pausa

Pausa el procedimiento momentáneamente para poder introducir las instrucciones que desee.

#### Paso

Muestra en una ventana, paso a paso, las instrucciones que se ejecutan en un procedimiento.

#### Estado

Muestra el estado de la tortuga (su posición, su rumbo, el color del instrumento de pintura y el color de relleno).

#### Reiniciar

Borra la pantalla y la deja en su estado inicial (blanca), pero no detiene el procedimiento en curso. ejecutar es editar una oración

#### Editar todo

Abre el editor mostrando todos los procedimientos declarados en el programa.

### Display

Esta ventana sirve única y exclusivamente para que el programador pueda visionar las órdenes dirigidas a la tortuga.

### Ventana de edición

Es quizás la ventana más utilizada del programa. No se muestra al inicio, pero se acciona pulsando en el botón Editar, en la ventana de trabajo. Aquí se escriben las órdenes en una lista, con un nombre del procedimiento, para posteriormente ser ejecutadas en la ventana trabajo y visionadas en el display.

## Instrucciones básicas

Las instrucciones básicas de MSWLogo son:
* (ESCRIBE “|una frase larga| :variable) Si ponemos toda la instrucción entre paréntesis podemos escribir palabras, frases y variables.
* :VARIABLE Utiliza el valor de una variable.
* AV número Avanza la tortuga.
* BL Baja el lápiz.
* BP Borra la pantalla.
* BT Borra el contenido de la ventana de trabajo.
* CAR LC Obtenemos el carácter correspondiente al código de la última tecla pulsada.
* CARGADIB “ruta\\archivo.extensión Carga dibujo con extensión bmp.
* CIRCLE número Dibuja un círculo de radio número.
* ESCRIBE :variable Escribe el valor de una variable.
* ESCRIBE “|una frase| Escribe la frase en la barra de comandos.
* ESCRIBE “palabra Escribe la palabra en barra de comandos.
* ESPERA número Cantidad de frames que espera la tortuga.
* GD grados Gira hacia la derecha a la tortuga.
* GI grados Gira hacia la izquierda la tortuga.
* HAZ “variable LEEPALABRA Pide que se introduzca el valor de la variable por teclado.
* HAZ “variable valor Crea una variable y le da un valor.
* MT Muestra la tortuga.
* OT Oculta la tortuga.
* PIXEL Devuelve (entre corchetes) los números que representan la intensidad de los colores rojo, verde y azul del píxel que se encuentra bajo la tortuga.
* PONCL [R G B] Fija color del lápiz.
* PONCOLORRELLENO [R G B] Fija color de relleno.
* PONCONTADOR número tiempo [instrucciones] Ejecuta las instrucciones entre corchetes
al transcurrir el tiempo indicado (en milésimas de segundo). Hay que indicar el número del contador activado en la instrucción.
* PONFOCO [Nombre de la Pantalla] Pasa el control a la pantalla especificada.
* PONPOS [x y] Pone a la tortuga en las coordenadas [x y].
* PONRUMBO grados Pone la tortuga en el rumbo indicado.
* PONTECLADO [instrucciones] Al pulsar una tecla, se ejecutan las instrucciones entre [ ].
* RE número Retrocede la tortuga.
* RELLENA Rellena de un color.
* REPITE número [instrucciones] Repite n veces lo que hay entre [ ].
* ROTULA [ palabras ] Escribe en la trayectoria de la tortuga las palabras.
* SI condición [instrucciones] Ejecuta instrucciones si se cumple una condición.
* Si pixel = [R G B] [instrucciones] Realiza instrucciones si el píxel de debajo de la tortuga es [ R G B].
* Si y (condición1) (condición2) [instrucciones] Realiza instrucciones si se cumplen las dos condiciones.
* SL Sube el lápiz.