miércoles, 1 de diciembre de 2010

karel`s

Introducción
El robot Karel es una herramienta de aprendizaje que presenta los conceptos de programación de una forma visual además de tener un nivel de abstracción bajo. El robot Karel fue introducido por Richard Pattis en 1981, en el libro “Karel the Robot: A Gentle Introduction to the Art of Programming with Pascal, John Wiley & Sons, Inc.”
El mundo de Karel
Karel puede orientarse en una de las cuatro direcciones: Este, Oeste, Norte y Sur. Sólo gira 90# cada vez. En el mundo de Karel, las calles van de sur a norte, y son numeradas comenzando por 1. No hay números de calle igual a 0 o negativos. Las avenidas van de oeste a este, y también están numeradas empezando por 1. Tampoco hay números de avenida igual a 0 o negativos. Se le llama esquina a la intersección de una calle con una avenida. Karel va de una esquina a la siguiente en un solo movimiento.
En el mundo de Karel sólo existen los muros (entre una esquina y otra, vertical u horizontal), y los zumbadores. Un zumbador es una marca que Karel puede escuchar sólo cuando se encuentra en la misma esquina que el zumbador. Karel tiene una mochila que puede utilizar para poner los zumbadores que va recolectando o dejando. Es posible ajustar el número inicial de zumbadores en la mochila.

Comandos básicos de Karel
Hay cinco comandos básicos para Karel, estos son:
<instrucciones>
1. avanza (avanza una esquina)
2. gira-izquierda (gira a la izquierda)
3. coge-zumbador (recoge un zumbador)
4. deja-zumbador (deja un zumbador)
5. apagate (desconecta al robot)
También se consideran instrucciones a las sentencias de control.
Karel no realizará una acción que no sea exitosa, es decir, el robot no avanzará si tiene una pared enfrente o no recogerá un zumbador si no lo hay en esa esquina. Cuando el robot no realiza una acción envía una notificación al programador y se detiene la ejecución del programa.
Iniciar-programa
Inicia-ejecucion
<instrucciones>
apagate;
termina-ejecucion
finalizar-programa

Ejemplo:

Programa Muestra
iniciar-programa
inicia-ejecucion
gira-izquierda;
apagate;
termina-ejecucion
finalizar-programa