lunes, 9 de enero de 2012

Manual - Karel El robot

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(); }} 

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(); }}

Por ejemplo:
          
          class program { define(corre)
          {move(); move(); move();}
          program() {
   
                             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.