Karel El Robot es una aplicación sencilla de software que simula un robot, que viaja en torno a su mundo, como si fuera una ciudad, donde hay calles y avenidas, pero estas pueden estar cerradas.
Karel lleva consigo una mochila, donde guarda "zumbadores", y con ellos puede hacer muchas cosas, entre ellas, contar. Puede dejar los zumbadores en una esquina, (formada por el cruce de una calle y una avenida), o puede recogerlos y guardarlos en su mochila.
El programa Karel está conformado por cuatro secciones:
a) Mundo, que es donde se editará el lugar donde Karel actuará de acuerdo a las condiciones del programa codificado.
b) Programa, sección donde se codifica el programa, se puede elegir entre dos lenguajes diferentes: Pascal y Java.
c) Ejecutar, en ésta sección se corre el programa. Aquí es donde vemos gráficamente el resultado del programa que se elaboró.
d) Ayuda, contiene un sencillo tutor acerca del uso de Karel. También viene la sintaxis de las instrucciones.Mundo:
El mundo está formado por 100 calles y 100 avenidas, y puede haber paredes que obstruyan el paso; las calles son horizontales y las avenidas verticales.Karel puede girar en su mundo solamente hacia la izquierda y siempre a 90°, entonces solo puede estar orientado hacia 4 puntos: Norte, Sur, Este y Oeste.
Para poner una pared que impida el paso solamente tiene que dar click entre 2 manzanas (cuadritos grises). Y para quitarla, solo se la da click a la pared que se desee eliminar. Los limites de las 100 calles y las 100 avenidas se consideran pared.
En el mundo también se puede definir el número inicial de zumbadores que Karel traerá en su mochila.
Se puede establecer la orientación de Karel antes de que el programa empiece a ejecutarse, dando click derecho sobre cualquier esquina, elegir "Situar a Karel" y seleccionar la orientación deseada.
Para poner una cantidad de zumbadores, en cualquier esquina se hace click derecho y se selecciona el número de zumbadores a poner.
Programa:
La estructura de un programa en Karel con lenguaje en Java esta desarrollada de la siguiente manera. class program {
program() {
turnoff(); }}
turnoff(); }}
Donde la mayoría de las instrucciones que ejecutará Karel serán colocadas seguidas del program() { y antes del turnoff(); }}.
Instrucciones basicas de Karel:
move(); Con esta instrucción Karel avanza una cuadra hacia enfrente.turnleft(); Con esta instrucción Karel gira hacia la izquierda 90 grados.
pickbeeper(); Con esta instrucción Karel recoge un zumbador de la esquina en la que se encuentra.
putbeeper(); Con esta instrucción Karel deja un zumbador en la esquina en la que se encuentra, si es que tiene algún zumbador en la mochila.
turnoff(); Con esta instrucción Karel finaliza la ejecución del programa.
Otras instrucciones de Karel:
iterate(#) Esta instrucción sirve para que Karel repita cierto número de veces otra instrucción que sea definida. Se usa de la siguiente manera: iterate(no. de veces) {instrucción} por ejemplo: iterate(4) {move();}.
define(nombre de la instrucción) Sirve para crear una nueva instrucción agrupando una o más instruciones ya existentes. Esta instrucción se coloca despues de class program { de la siguiente manera:
class program { define(nombre de la instrucción)
{bloque de instrucciones}
program() {
turnoff(); }}
turnoff(); }}
Por ejemplo:
class program { define(corre)
{move(); move(); move();}
program() {
turnoff(); }}
turnoff(); }}
Karel puede ejecutar instrucciones por si solo usando Algoritmos, para esto es necesario primero conocer las Condiciones.
frontIsClear Si Karel tiene libre al frente.
frontIsBlocked Si Karel tiene pared al frente.
leftIsClear Si el lado izquierdo de Karel está libre.
leftIsBlocked Si el lado izquierdo de Karel está bloqueado.
rightIsClear Si el lado derecho de Karel está libre.
rightIsBlocked Si el lado derecho de Karel está bloqueado.
nextToABeeper Si hay un zumbador donde Karel está parado.
notNextToABeeper Si no hay un zumbador donde Karel está parado.
facingNorth Si Karel está volteando al Norte.
notFacingNorth Si Karel no está volteando al Norte.
facingSouth Si Karel está volteando al Sur.
notFacinSouth Si Karel no está volteando al Sur.
facingEast Si Karel está volteando al Este.
notFacingEast Si Karel no está volteando al Este.
facingWest Si Karel está volteando al Oeste.
notFacingWest Si Karel no está volteando al Oeste.
anyBeepersInBeeperBag Si Karel tiene algún zumbador en la mochila.
noBeepersInBeeperBag Si Karel no tiene algún zumbador en la mochila.
Una vez conocidos estas Condiciones podemos aprender las siguientes instrucciones:
if(condicion[bloque condicional]) "Si (condicion) ejecutar (instrucción)."
instrucción {bloque de instrucciones}
if (condicion[bloque condicional]) "Si (condicion) ejecutar (instrucción 1)"
instrucción 1 {bloque de instrucciones}
else (condicion[bloque condicional]) "De otro modo (condicion) ejecutar (instrucción 2)
instrucción 2 {bloque de instrucciones}
while (condicion[bloque condicional]) "Mientras (condicion) ejecutar (instrucción)"
instrucción {bloque de instrucciones}
También se puede usar "and" (&&) y "or"(//) para agregar mas condiciones.