Tutorial Karel
Tutorial Karel
Tutorial Karel
Iniciar-programa
Inicia-ejecucion
<instrucciones>
apagate;
termina-ejecucion
finalizar-programa
si/entonces
repite/nmero de veces
si/entonces/sino
Mientras/hacer
Toma de decisiones
Muchas veces Karel necesita tomar decisiones, de acuerdo a las situaciones en las que se
encuentre, dichas condiciones se listan a continuacin:
<condiciones de pared>
frente-libre
frente-bloqueado
izquierda-libre
izquierda-bloqueada
derecha-libre
derecha-bloqueada
<condiciones de zumbadores>
junto-a-zumbador
no-junto-a-zumbador
algun-zumbador-en-la-mochila
ningun-zumbador-en-la-mochila
<condiciones de orientacin>
orientado-al-norte
orientado-al-sur
orientado-al-este
orientado-al-oeste
no-orientado-al-norte
no-orientado-al-sur
no-orientado-al-este
no-orientado-al-oeste
"libre" significa que no hay ninguna pared entre una esquina y otra, mientras que "bloqueado"
significa que hay un muro en esa direccin. Karel puede detectar si hay o no algn zumbador en
la esquina en la que se encuentra actualmente, as como detectar si tiene algn zumbador en la
mochila o no. Tambin tiene una brjula para detectar hacia qu direccin est orientado.
Decisiones simples
Karel puede hacer una serie de instrucciones, si es que se cumple con la condicin establecida,
que puede ser cualquiera de las que se mencionaron anteriormente. Por ejemplo:
Si
<condicin>
entonces
incio
<instrucciones>
fin;
Programa
Muestra
iniciar-programa
inicia-ejecucion
si
junto-a-zumbador
entonces
inicio
coge-zumbador;
fin;
apagate;
termina-ejecucion
finalizar-programa
Este ejemplo escenifica que para recoger un zumbador sin obtener un error de Karel, es
necesario revisar si existe un zumbador en el suelo utilizando la condicin junto-a-zumbador, al
ejecutar esta instruccin. La sintaxis es la que se muestra a continuacin:
Programa
Muestra
Repetir
#
veces
Inicio
<instrucciones>
fin;
repetir
3
veces
inicio
gira-izquierda;
fin;
Repeticiones condicionadas
Si necesitas que Karel repita una serie de instrucciones mientras se cumpla una condicin se
usa la sentencia mientras. hacer. Esto es:
Por
ejemplo,
si
se
desea
que
Karel
avance
hasta
el
siguiente
muro,
entonces
se
puede
escribir.
Recursividad
La parte mas poderosa de Karel es la recursividad, es decir, la definicin de una nueva
instruccin en trminos de s misma. Tambin tiene 2 secciones bsicamente, el caso base y el
caso recursivo. Por ejemplo, suponga que Karel debe avanzar hasta la siguiente pared.
Programa
Muestra
iniciar-programa
define-nueva-instruccin
avanza-tope
como
inicio
si
frente-bloqueado
entonces
inicio
apgate;
fin;
sino
inicio
avanza;
avanza-tope;
fin;
fin;
inicia-ejecucion
avanza-tope;
termina-ejecucion
finalizar-programa
Caso base
Caso recursivo