15392. [Tutorial] Condicionales de Karel
Actualmente sabemos cómo programar Karel para que siempre siga las mismas instrucciones, para que siempre resuelva un mundo, pero Karel puede hacer más. Aprendamos del potencial de Karel.
Karel dispone de una herramienta para tomar decisiones y esta es la condicional si
, funciona como uno puede imaginarlo.
Básicamente, Karel puede hacer una pregunta sobre el mundo y si esta se cumple, entonces realizar algo, de lo contrario no hacer nada. Similar a la frase "si está lloviendo cierra la puerta"; solo cierras la puerta si está lloviendo, de lo contrario no lo haces.
Veamos ahora como funciona en Karel.
La estructura de la condicional si es la siguiente:
Comenzamos escribiendo la palabra si
; seguido de esto es la condición, lo que debe cumplirse para ejecutar las instrucciones; seguido de la CONDICIÓN escribimos la palabra entonces
.
Después de las instrucciones viene la palabra inicio
, esta palabra indica que a continuación inicia la lista de instrucciones que han de ser ejecutadas únicamente cuando la CONDICION se cumpla.
Abajo del inicio
vienen las instrucciones, aquí podemos escribir cuantas instrucciones queramos y estas se ejecutarán cuando la respuesta a la CONDICIÓN haya sido cierta.
Nota como las instrucciones son escritas con espacios para que estén a la derecha, esto no es obligatorio, pero es altamente recomendado. Permite identificar visualmente que las instrucciones allí adentro dependen del condicional si
. Conforme nuestros códigos se vayan haciendo más grandes, más importante será esto. Es trabajar ordenadamente para evitar errores en el futuro. A esto se le llama identación.
Los espacios para la identación también se pueden colocar presionando Tabulación (Tecla ubicada hasta la izquierda del teclado). Esto nos colocará el espacio automáticamente y pondrá los espacios en las siguientes líneas. En Karel.js esto se ve como una flechita gris.
Si no respetas esta estructura, tendrás un error de compilación.
Ejemplo 1
Veamos un ejemplo de condicional si:
Probemos a colocar a Karel con diferentes orientaciones y ejecutar el código. Verás como solo da dos pasos cuando Karel este orientado al Norte y de lo contrario no hace nada.
Lo que Karel hace es preguntarse primero si está orientado al norte. Si lo está, ejecuta los dos avanzas y luego el apagate. Pero si no está orientado al norte, se salta completamente los dos avanzas y ejecuta el apagate. Veamos otro ejemplo.
Ejemplo 2
Este ejemplo avanzará enfrente, pero de forma precavida, cuidando que no haya una pared enfrente. Y luego deja un zumbador.
Vemos que cuando no hay pared enfrente, Karel avanza y deja el zumbador:
Pero cuando hay una pared, Karel se salta la instrucción de avanza y solo deja el zumbador.
Condiciones de Karel
Las condiciones que Karel puede revisar son varias:
frente-libre
: es cierta si no hay pared hacia donde Karel apunta.derehca-libre
: es cierta si no hay pared a la derecha de Karel.izquierda-libre
: es cierta si no hay pared a la izquierda de Karel.junto-a-zumbador
: es cierta si en la casilla donde esta Karel hay por lo menos un zumbador.algun-zumbador-en-la-mochila
: es cierta si Karel tiene por lo menos un zumbador en la mochila.orientado-al-norte
: es cierta si Karel está apuntando al norte, hacia arriba.orientado-al-este
: es cierta si Karel está apuntando al este, hacia la derecha.orientado-al-sur
: es cierta si Karel está apuntando al sur, hacia abajo.orientado-al-oeste
: es cierta si Karel está apuntando al oeste, hacia la izquierda.
Y todas estas tienen su versión opuesta, por ejemplo:
no-orientado-al-norte
: es cierta cuando Karel NO está orientado al norte.no-junto-a-zumbador
: es cierta cuando en la casilla donde esta Karel, no hay ningún zumbador.frente-bloqueado
: es cierta cuando hay una pared hacia donde apunta Karel.ningun-zumbador-en-la-mochila
: es cierta cuando Karel tiene 0 zumbadores en la mochila.
La lista completa de condiciones la puedes revisar en la sección de ayuda, tutorial de Pascal, Condiciones que puede detectar Karel.
Como consejo, sabrás que escribiste correctamente la condicional si se colorea de verde en Karel.js. De lo contrario, probablemente escribiste una letra mal.
Prueba con varias condicionales, prueba diferentes condiciones, escribe códigos más complejos e interesantes hasta que te sientas cómodo.
Prueba a resolver el problema Karel-Basico-SI-01.
Fecha y hora | Lenguaje | Coder | Estatus | Porcentaje | Ejecución | Salida | Memoria | Tiempo | Acciones |
---|
Clarificaciones
Info | Mensaje | Respuesta |
---|
Debes iniciar sesión para desbloquear/ver esta solución.