guia de programacion con karel el robot

Upload: roge-btsta

Post on 11-Jul-2015

1.365 views

Category:

Documents


2 download

TRANSCRIPT

2011Programacin con Karel el robot

Gua General

Rogelio Bautista Snchez E&B Enterprises 18/03/2011

Gua del maestro para programacin con karel

ndice.INDICE ........................................................................................................................... 2 INTRODUCCION ............................................................................................................. 3 APRENDIENDO A PROGRAMAR EN KAREL (PASCAL) ......................................................... 4CONDICIONES PARA FUNCIONES SI Y MIENTRAS ............................................................................... 5 USO DE LAS CONDICIONES INICIO Y FIN (EN CASO DE TENER MAS INSTRUCCIONES EN UNA CONDICION MIENTRAS O SI) ... 7 USO DEL Y Y DEL O EN CONDICIONES SI Y MIENTRAS ................................................................... 7 CREANDO NUEVAS FUNCIONES .................................................................................................... 8 RECURSIVIDAD EN KAREL ............................................................................................................ 9 EJEMPLO BASICO DE KAREL PARA SU COMPRENSIN ....................................................................... 13

SECCION 2 PROGRAMACION CON JAVA ........................................................................ 15

APRENDIENDO A PROGRAMAR EN KAREL (JAVA) ........................................................... 16CONDICIONES PARA FUNCIONES IF Y WHILE .................................................................................. 17 USO DE LAS CONDICIONES INICIO Y FIN DE JAVA (EN CASO DE TENER MAS INSTRUCCIONES EN UNA CONDICION WHILE OIF)

....................................................................................................................................... 19 USO DEL && (AND) Y DEL || (OR) EN CONDICIONES IF Y WHILE ................................................. 19 CREANDO NUEVAS FUNCIONES .................................................................................................. 20 RECURSIVIDAD EN KAREL .......................................................................................................... 21 EJEMPLO BASICO DE KAREL PARA SU COMPRENSIN ....................................................................... 26

Rogelio Bautista Snchez

2

Gua del maestro para programacin con karel

Introduccin.

Esta gua es para uso general, aunque es preferible que sea manejada por un profesor o un conocedor que al menos sepa lo bsico de la programacin para poder comprender la lgica empleada, no presenta paso a paso todo en torno a la forma de programar con karel, presenta las instrucciones, funciones, condiciones y ejemplos de cdigos utilizados de forma general. Karel como usted lector ya lo sabe es un programa que necesita instrucciones de programacin para resolver situaciones, karel se presenta como la flecha que se posiciona en cualquier lugar de su mundo de 100 * 100. Sabemos que karel el robot puede leer 2 leguajes en particular; PASCAL o JAVA, esta gua presenta los 2 para su rpido empleo, contiene todas las instrucciones necesarias para desarrollar complejos programas y resolver las diferentes situaciones que se le presenten en torno a este software. Esta gua se desarrollo a partir de las publicaciones en internet relacionadas a la forma de programar en karel, se hizo para una comprensin general y sintetizada de lo que es trabajar la lgica y el razonamiento bajo el software de karel.

Rogelio Bautista Snchez

3

Gua del maestro para programacin con karel

Aprendiendo a programar en karel (PASCAL).Karel es un robot, recordemos que no sabe nada ms que: avanza; gira-izquierda; ah y: coge-zumbador; deja-zumbador; Pero tiene buena memoria, y es muy obediente. Abrimos el programa, nos vamos a la pestaa de Mundo. En la esquina inferior izquierda, y viendo hacia arriba, se encuentra Karel. Si dan clic derecho en una zona blanca, podrn ver un men contextual, donde les preguntan si quieren colocar a Karel en ese lugar, y si quieres poner algn zumbador en ese lugar. si dan clic al lado de un cuadro gris, se pondr una pared.

Esta es la sintaxis inicial de karel, la estructura bsica de cmo inicia el cdigo y como se finaliza:iniciar-programa inicia-ejecucion apagate; termina-ejecucion finalizar-programa

iniciar-programa inicia-ejecucion apgate; termina-ejecucion finalizar-programa avanza; gira-izquierda; coge-zumbador; deja-zumbador repetir [cantidad] veces [accin] mientras [condicin] hacer [accin] si [condicin] entonces y o[accin]

Da comienzo al cdigo pascal Determina que da inicio a las instrucciones Declara que no se harn mas acciones Declara que ya no hay mas instrucciones Finaliza el cdigo pascal Karel se mueve un espacio al frente Karel voltea hacia la izquierda Karel recoge un zumbador Karel suelta un zumbador Indica que un movimiento se repetir X veces Mientras se cumpla una condicin karel realizara algo Si una condicin se cumple entonces Karel realizara algo Une 2 condiciones, para que se realice la accin se deben cumplir las 2 condiciones Une 2 condiciones, para que se realice la accin cualquiera de ellas se debe de cumplir

Rogelio Bautista Snchez

4

Gua del maestro para programacin con karel

Condiciones para funciones Si y mientras.frente-libre junto-a-zumbador orientado-al-este frente-bloqueado no-junto-a-zumbador orientado-al-oeste izquierda-libre algun-zumbador-en-la-mochila no-orientado-al-norte izquierda-bloqueada ningun-zumbador-en-la-mochila no-orientado-al-sur derecha-libre orientado-al-norte no-orientado-al-este derecha-bloqueada orientado-al-sur no-orientado-al-oeste No hay nada al frente de Karel Hay un zumbador frente a Karel Karel mira al este de su mundo Al frente de Karel hay algo que no lo deja avanzar No hay zumbador alguno frente a Karel Karel mira al oeste de su mundo No hay algo bloqueando la izquierda de Karel Karel tiene un zumbador en la mochila Karel no mira al norte de su mundo Hay algo que bloquea la izquierda de Karel Karel no tiene zumbadores en la mochila Karel no mira al sur de su mundo No hay algo bloqueando la derecha de karel Karel mira al norte de su mundo Karel no mira al este de su mundo Hay algo que bloquea la derecha de Karel Karel mira al sur de su mundo Karel no mira al oeste de su mundo

Rogelio Bautista Snchez

5

Gua del maestro para programacin con karel

Ejemplo de funcin Si:

iniciar-programa inicia-ejecucion avanza; gira-izquierda; avanza; si frente-libre entonces avanza; apagate; termina-ejecucion finalizar-programa

Ejemplo de funcin mientras:

iniciar-programa inicia-ejecucion mientras no-orientado-al-oeste hacer gira-izquierda; mientras frente-libre hacer avanza; gira-izquierda; mientras frente-libre hacer avanza; apagate; termina-ejecucion finalizar-programa

Ejemplo de repetir:

iniciar-programa inicia-ejecucion gira-izquierda; repetir 6 veces avanza; apagate; termina-ejecucion finalizar-programa

Rogelio Bautista Snchez

6

Gua del maestro para programacin con karel

Uso de las condiciones inicio y fin (en caso de tener mas instrucciones en una condicin mientras o Si).

si [condicin] entonces inicio acciones; fin sino inicio acciones2; fin;

Ejemplo:si orientado-al-norte entonces inicio avanza; gira-izquierda; fin sino inicio repetir 2 veces inicio (*esto es igual a media vuelta*) gira-izquierda; fin; fin;

Uso del Y y del O en condiciones SI y MIENTRAS.El uso del and o en este caso Y, une dos condiciones que forzosamente se deben de cumplir para que Karel realice un movimiento o accin, se puede usar tanto en un SI o en un MIENTRAS. Por ejemplo podemos poner un "si" as: Cdigo: si junto-a-zumbador y frente-libre entonces...

Para el uso del or o como es en pascal el o, este tambin une dos condiciones, pero en este caso para que Karel realice un movimiento o una accin, no es necesario que las dos forzosamente se cumplan, cualquiera de las dos se debe de cumplir, no importa si es la primera o la segunda.

Por ejemplo podemos poner un "mientras" as: Cdigo: mientras junto-a-zumbador o frente-bloqueado hacer...

Rogelio Bautista Snchez

7

Gua del maestro para programacin con karel

Creando nuevas funciones.La creacin de nuevas funciones facilita el uso del programa de karel, ya que ahorra cdigo y la repeticin de este, para la creacin de nuevas funciones tenemos la instruccin define-nueva-instruccion.

define-nueva-instruccion [nombre] como inicio [acciones] fin;

Ejemplo:define-nueva-instruccion gira-derecha como inicio repetir 3 veces gira-izquierda; fin;

Esta condicin se coloca antes del inicia-ejecucion:iniciar-programa define-nueva-instruccion gira-derecha como inicio repetir 3 veces gira-izquierda; fin; inicia-ejecucion gira-derecha; apagate; termina-ejecucion finalizar-programa

Rogelio Bautista Snchez

8

Gua del maestro para programacin con karel

Recursividad en Karel.La recursividad en Karel en esta gua se presenta de forma clara para la mejor comprensin y explicacin.Aqu esta el cdigo completo, pero para su comprensin lo vamos a explicar mas abajo. Cdigo: iniciar-programa define-nueva-instruccion suma(s) como inicio si junto-a-zumbador entonces inicio coge-zumbador; suma(sucede(s)); deja-zumbador; fin sino inicio repetir 2 veces gira-izquierda; mientras frente-libre hacer avanza; repetir 2 veces gira-izquierda; repetir 3 veces avanza; repetir s veces deja-zumbador; repetir 2 veces gira-izquierda; mientras junto-a-zumbador hacer avanza; repetir 2 veces gira-izquierda; fin; fin; inicia-ejecucion mientras no-orientado-al-este hacer gira-izquierda; avanza; suma(0); avanza; suma(0); apagate; termina-ejecucion finalizar-programa

Antes de explicar el cdigo hay que explicar como funciona la recursividad de funciones.

Miren: Citar

define-nueva-instruccion [nombre] como inicio si [condicin de salida inversa] entonces acciones a ejecutar [llamada a la misma funcion] acciones a ejecutar despus al final, la cantidad de veces que la funcin fue llamada fin; fin;

Rogelio Bautista Snchez

9

Gua del maestro para programacin con karelEs decir, en este ejemplo: Cdigo: define-nueva-instruccion karel como inicio si junto-a-zumbador entonces inicio coge-zumbador; avanza; deja-zumbador; gira-izquierda;gira-izquierda; avanza; gira-izquierda;gira-izquierda; karel; deja-zumbador; fin; fin;

Se copia el nmero de zumbadores en el espacio de adelante. Veamos porque.. Cdigo: define-nueva-instruccion karel como inicio Creamos la funcin. Cdigo: si junto-a-zumbador entonces inicio Esta es nuestra condicin de salida, es decir la recursividad (llamada a una funcion dentro de su misma) solo se ejecuta mientras esta condicin sea verdadera. Cdigo: coge-zumbador; avanza; deja-zumbador; gira-izquierda;gira-izquierda; avanza; gira-izquierda;gira-izquierda; Esto es la seccin donde coge el zumbador, lo deja adelante, y regresa a la posicin original. Cdigo: karel; aqu esta la llamada a si misma. Cdigo: deja-zumbador; Y esto es lo que va a hacer por cada zumbador que tomo, es decir dejar otro en su lugar. En otras palabras, lo que hace es: Cdigo: si hay zumbadores agarro uno lo pongo adelante de nuevo lo mismo X veces dejo X zumbadores. fin

Rogelio Bautista Snchez

10

Gua del maestro para programacin con karelPara que lo vean mas claro, aqu esta con colores... Citar

define-nueva-instruccion karel como inicio si junto-a-zumbador entonces inicio coge-zumbador; avanza; deja-zumbador; gira-izquierda;gira-izquierda; avanza; gira-izquierda;gira-izquierda; karel; deja-zumbador; fin; fin;

Y para los que aun no entienden, por ejemplo si hay 2 zumbadores el cdigo que ejecuta el programa realmente es este (sustituyo la llamada a karel por el cdigo del mismo). Cdigo: define-nueva-instruccion karel como inicio si junto-a-zumbador entonces inicio coge-zumbador; avanza; deja-zumbador; gira-izquierda;gira-izquierda; avanza; gira-izquierda;gira-izquierda; si junto-a-zumbador entonces inicio (*ESTA ES LA MISMA FUNCION OTRA VEZ*) coge-zumbador; avanza; deja-zumbador; gira-izquierda;gira-izquierda; avanza; gira-izquierda;gira-izquierda; si junto-a-zumbador entonces inicio (*AQUI LA CONDICION YA NO SE CUMPLE*) fin; deja-zumbador; fin; (*AQUI TERMINA*) deja-zumbador; fin; fin;

Rogelio Bautista Snchez

11

Gua del maestro para programacin con karelEn fin, aqu se explico de 3 maneras distintas la teora de recursividad. Si aun no se entiende, pongamos otro ejemplo: Citar

define-nueva-instruccion ve-arriba como inicio si no-orientado-al-norte entonces inicio gira-izquierda; ve-arriba; fin; fin;

Este cdigo girara a la izquierda hasta que este no se cumpla: "no-orientado-al-norte" es decir, girar: "mientras no-orientado-al-norte"

Rogelio Bautista Snchez

12

Gua del maestro para programacin con karel

Ejemplo bsico de Karel para su mejor comprensin.Coloque a karel en las coordenadas 7,1 Ahora nosotros queremos que llegue a las coordenadas 1,1 Citar

iniciar-programa inicia-ejecucion gira-izquierda; avanza; avanza; avanza; avanza; avanza; avanza; apagate; termina-ejecucion finalizar-programaLo hacemos con repetir: Citar

iniciar-programa inicia-ejecucion gira-izquierda; repetir 6 veces avanza; apagate; termina-ejecucion finalizar-programaHace lo mismo que el anterior. Ahora Karel va a estar en una posicin desconocida, y debe llegar a 1,1. Usamos mientras: as que lo primero, es ver a la izquierda Cdigo: gira-izquierda; Despus mientras tengamos el frente-libre hacer avanza; Cdigo: gira-izquierda; mientras frente-libre hacer avanza; despus debemos ver hacia abajo, porque no sabemos a que altura este Karel. Cdigo: gira-izquierda; y hacemos lo mismo, buscar la pared. Cdigo: mientras frente-libre hacer avanza;

Rogelio Bautista Snchez

13

Gua del maestro para programacin con karelEl cdigo queda as: Cdigo: iniciar-programa inicia-ejecucion gira-izquierda; mientras frente-libre hacer avanza; gira-izquierda; mientras frente-libre hacer avanza; apagate; termina-ejecucion finalizar-programa Karel estar orientado al norte y llegara a la posicin 1,1. Pongmoslo ms difcil: Haz que Karel llegue a 1,1 sin saber hacia donde esta viendo karel al principio. Es decir, no sabemos si esta viendo al norte, sur, este, oeste Entonces usamos mientras. Cdigo: mientras no-orientado-al-oeste hacer gira-izquierda; Lo que hace es que va a girar a la izquierda mientras no este orientado al oeste. Colocamos esta lnea al principio en lugar de el gira-izquierda, y... Citar

iniciar-programa inicia-ejecucion mientras no-orientado-al-oeste hacer gira-izquierda; mientras frente-libre hacer avanza; gira-izquierda; mientras frente-libre hacer avanza; apagate; termina-ejecucion finalizar-programa

Rogelio Bautista Snchez

14

Gua del maestro para programacin con karel

Seccin 2: PROGRAMANDO CON JAVA.E&B Enterprises

Rogelio Bautista Snchez

15

Gua del maestro para programacin con karel

Aprendiendo a programar en karel (JAVA).Karel es un robot, recordemos que no sabe nada ms que: move(); turnleft(); ah y: pickbeeper; putbeeper; Pero tiene buena memoria, y es muy obediente. Abrimos el programa, nos vamos a la pestaa de Mundo. En la esquina inferior izquierda, y viendo hacia arriba, se encuentra Karel. Si dan clic derecho en una zona blanca, podrn ver un men contextual, donde les preguntan si quieren colocar a Karel en ese lugar, y si quieres poner algn zumbador en ese lugar. Si dan clic al lado de un cuadro gris, se pondr una pared.

Esta es la sintaxis inicial de karel, la estructura bsica de cmo inicia el cdigo y como se finaliza:class program { program() { turnoff(); }

class program(); program(); turnoff(); move(); turnleft(); pickbeeper(); putbeeper(); iterate(cantidad) {acciones} while(condiciona evaluar) { acciones if(condicin) &&(and) ||(or){accin}

Da comienzo al cdigo pascal Determina que da inicio a las instrucciones Declara que no se harn mas acciones Karel se mueve un espacio al frente Karel voltea hacia la izquierda Karel recoge un zumbador Karel suelta un zumbador Indica que un movimiento se repetir X veces}

Mientras se cumpla una condicin karel realizara algo Si una condicin se cumple entonces Karel realizara algo Une 2 condiciones, para que se realice la accin se deben cumplir las 2 condiciones Une 2 condiciones, para que se realice la accin cualquiera de ellas se debe de cumplir

Rogelio Bautista Snchez

16

Gua del maestro para programacin con karel

Condiciones para funciones if y while.frontIsClear nextToABeeper facingEast frontIsBlocked notNextToABeeper facingWest leftIsClear anyBeepersInBeeperBag notFacingNorth leftIsBlocked noBeepersInBeeperBag notFacingSouth rightIsClear facingNorth notFacingEast rightIsBlocked facingSouth notFacingWest No hay nada al frente de Karel Hay un zumbador frente a Karel Karel mira al este de su mundo Al frente de Karel hay algo que no lo deja avanzar No hay zumbador alguno frente a Karel Karel mira al oeste de su mundo No hay algo bloqueando la izquierda de Karel Karel tiene un zumbador en la mochila Karel no mira al norte de su mundo Hay algo que bloquea la izquierda de Karel Karel no tiene zumbadores en la mochila Karel no mira al sur de su mundo No hay algo bloqueando la derecha de karel Karel mira al norte de su mundo Karel no mira al este de su mundo Hay algo que bloquea la derecha de Karel Karel mira al sur de su mundo Karel no mira al oeste de su mundo

Rogelio Bautista Snchez

17

Gua del maestro para programacin con karel

Ejemplo de funcin If:

class program { program() { move(); turnleft(); move(); if(frontIsClear) { move(); } turnoff(); } }

Ejemplo de funcin while:

class program { program() { while(notFacingWest) { turnleft(); } while(frontIsClear) { move(); } turnleft(); while(frontIsClear) { move(); } turnoff(); } }

Ejemplo de iterate:

class program { program() { turnleft(); iterate(6) { move(); } turnoff(); } }

Rogelio Bautista Snchez

18

Gua del maestro para programacin con karel

Uso de las condiciones inicio y fin de java (en caso de tener mas instrucciones en una condicin while o if).Las condiciones de inicio y fin no son ms que las llaves que indican las instrucciones, en este caso se definen como if anidados.if(condicin) { acciones(); } else { acciones2(); }

Ejemplo:class program { program() { if(facingNorth) { move(); turnleft(); } else { iterate(2) { turnleft(); } } turnoff(); } }

Uso del && (and) y del || (or) en condiciones if y while.El uso del and, une dos condiciones que forzosamente se deben de cumplir para que Karel realice un movimiento o accin, se puede usar tanto en un if o en un while. Por ejemplo podemos poner un "if" as: Cdigo: if(nextToABeeper&&frontIsClear)

Para el uso del or, este tambin une dos condiciones, pero en este caso para que Karel realice un movimiento o una accin, no es necesario que las dos forzosamente se cumplan, cualquiera de las dos se debe de cumplir, no importa si es la primera o la segunda.

Por ejemplo podemos poner un "while" as: Cdigo: while(nextToABeeper||frontIsBlocked)

Rogelio Bautista Snchez

19

Gua del maestro para programacin con karel

Creando nuevas funciones.La creacin de nuevas funciones facilita el uso del programa de karel, ya que ahorra cdigo y la repeticin de este, para la creacin de nuevas funciones tenemos las instrucciones en cdigo java que son void y define.

define nombre_de_nueva_instruccion(){ acciones() } void nombre_de_nueva_instruccion(){ acciones() }

Ejemplo:define turnright() { iterate(3) { turnleft(); } }

Esta condicin se coloca antes del program():class program { define turnright() { iterate(3) { turnleft(); } } program() { turnright(); turnoff(); } }

Rogelio Bautista Snchez

20

Gua del maestro para programacin con karel

Recursividad en Karel.La recursividad en Karel en esta gua se presenta completa para la mejor comprensin y explicacin del docente.Aqu esta el cdigo completo, pero para su comprensin lo vamos a explicar mas abajo. Cdigo: class program { define suma(s){ if(nextToABeeper){ pickbeeper(); suma(succ(s)); putbeeper(); } else { iterate(2) { turnleft(); } while(frontIsClear){ move(); } iterate(2) { turnleft(); } iterate(3) { move(); } iterate(s) { putbeeper(); } iterate(2) { turnleft(); } while(nextToABeeper){ move(); } iterate(2) { turnleft(); } } } program() { while(notFacingEast){ turnleft(); } move(); suma(0); move(); suma(0); turnoff(); } }

Rogelio Bautista Snchez

21

Gua del maestro para programacin con karelAntes de explicar el cdigo hay que explicar como funciona la recursividad de funciones.

Miren: Citar

define nueva_instruccion() { if(condicin de salida inversa){ acciones a ejecutar [llamada a la misma funcion] acciones a ejecutar despus al final, la cantidad de veces que la funcin fue llamada } }

Rogelio Bautista Snchez

22

Gua del maestro para programacin con karelEs decir, en este ejemplo: Cdigo: define karel(){ if(nextToABeeper){ pickbeeper(); move(); putbeeper(); turnleft(); turnleft(); move(); turnleft(); turnleft(); karel(); putbeeper(); } } Se copia el nmero de zumbadores en el espacio de adelante. Veamos porque.. Cdigo: define karel() { Creamos la funcin. Cdigo: if(nextToABeeper) { Esta es nuestra condicin de salida, es decir la recursividad (llamada a una funcion dentro de su misma) solo se ejecuta mientras esta condicin sea verdadera. Cdigo: pickbeeper(); move() putbeeper(); turnleft(); turnleft(); move(); turnleft(); turnleft(); Esto es la seccin donde coge el zumbador, lo deja adelante, y regresa a la posicin original. Cdigo: karel(); Aqu esta la llamada a si misma. Cdigo: putbeeper(); Y esto es lo que va a hacer por cada zumbador que tomo, es decir dejar otro en su lugar. En otras palabras, lo que hace es: Cdigo: si hay zumbadores agarro uno lo pongo adelante de nuevo lo mismo X veces dejo X zumbadores. fin

Rogelio Bautista Snchez

23

Gua del maestro para programacin con karelPara que lo vean mas claro, aqu esta con colores... Citar

define karel() { if(nextToABeeper){ pickbeeper(); move(); putbeeper(); turnleft(); turnleft(); move(); turnleft(); turnleft(); karel(); putbeeper(); } }

Y para los que aun no entienden, por ejemplo si hay 2 zumbadores el cdigo que ejecuta el programa realmente es este (sustituyo la llamada a karel por el cdigo del mismo). Cdigo: define karel(){ if(nextToABeeper){ pickbeeper(); move(); putbeeper(); turnleft(); turnleft(); move(); turnleft(); turnleft(); if(nextToABeeper) { (*ESTA ES LA MISMA FUNCION OTRA VEZ*) pickbeeper(); move(); putbeeper(); turnleft(); turnleft(); move(); turnleft(); turnleft(); if(nextToABeeper) { (*AQUI LA CONDICION YA NO SE CUMPLE*) } putbeeper(); } (*AQUI TERMINA*) putbeeper(); } }

Rogelio Bautista Snchez

24

Gua del maestro para programacin con karelEn fin, aqu se explico de 3 maneras distintas la teora de recursividad. Si aun no se entiende, pongamos otro ejemplo: Citar

define ve-arriba() { if(notFacingNorth){ turnleft(); ve-arriba(); } }

Este cdigo girara a la izquierda hasta que este no se cumpla: "notFacingNorth" es decir, girar: "mientras no este orientado al norte"

Rogelio Bautista Snchez

25

Gua del maestro para programacin con karel

Ejemplo bsico de Karel para su mejor comprensin.Coloque a karel en las coordenadas 7,1 Ahora nosotros queremos que llegue a las coordenadas 1,1 Citar

class program { program() { turnleft(); move(); move(); move(); move(); move(); move(); turnoff(); } }Lo hacemos con repetir: Citar

class program { program() { turnleft(); iterate(6){ move(); } turnoff(); } }Hace lo mismo que el anterior. Ahora Karel va a estar en una posicin desconocida, y debe llegar a 1,1. Usamos mientras: as que lo primero, es ver a la izquierda Cdigo: turnleft(); Despus mientras tengamos el frente-libre hacer avanza; Cdigo: turnleft(); while(frontIsClaear){ move(); despus debemos ver hacia abajo, porque no sabemos a que altura este Karel. Cdigo: turnleft(); y hacemos lo mismo, buscar la pared. Cdigo: while(frontIsClear) { move();

Rogelio Bautista Snchez

26

Gua del maestro para programacin con karel

El cdigo queda as: Cdigo: class program { program() { turnleft(); while(frontIsClear) { move(); } turnleft(); while(frontIsClear) { move(); } turnoff(); } } Karel estar orientado al norte y llegara a la posicin 1,1. Pongmoslo ms difcil: Haz que Karel llegue a 1,1 sin saber hacia donde esta viendo karel al principio. Es decir, no sabemos si esta viendo al norte, sur, este, oeste Entonces usamos mientras. Cdigo: while(notFacingWest) { turnleft(); } Lo que hace es que va a girar a la izquierda mientras no este orientado al oeste. Colocamos esta lnea al principio en lugar de el turnleft(); , y... Citar

class program { program() { while(notFacingWest) { turnleft(); } while(frontIsClear) { move(); } turnleft(); while(frontIsClear) { move(); } turnoff(); } }

Rogelio Bautista Snchez

27