La sentencia define-nueva-instruccion/como  

Hasta ahora, le hemos dicho a Karel exactamente lo que tenía que hacer  tal como necesitábamos que lo hiciese. Esto funciona bien, pero os podréis haber dado cuenta de que siempre se utilizan secuencias de sentencias similares. Un ejemplo es cuando Karel tiene que girar a la derecha, y nosotros le decimos " gira-izquierda; gira-izquierda; gira-izquierda; ". ¿No sería más fácil si le pudiéramos decir simplemente "gira-derecha" ?.

En otras palabras, diciendo " gira-derecha; " Karel giraría tres veces hacia la izquierda para alcanzar nuestro objetivo. Es posible. ¿Estás suficientemente motivado para aprender una nueva sentencia?

Una de las razones de crear nuevas instrucciones, es por evitar escribir tanto. Otra es para documentar mejor cual es nuestro objetivo, cuando nosotros mismos u otra persona lee el programa. Como os  estaréis dando cuenta, programar es una tarea extremadamente compleja, y ¡necesitamos toda la ayuda necesaria para hacer las cosas correctamente !

Las sentencias define-nueva-instrucion están situadas en un sitio especial dentro de un programa de Karel, justo después de la sentencia inicio-de-ejecucion. El siguiente es un programa válido para Karel:

 

Podéis definir cualquier número de instrucciones nuevas, y después usarlas en el programa donde las necesitéis. Las instrucciones nuevas pueden contener sentencias de control, si es necesario. Daros cuenta de que la nueva instrucción puede también usar una instrucción definida previamente. El ejercicio 5 podría haberse escrito: 

    

Daros cuenta de como la instrucción repetir acaba moviendo a Karel una esquina hacia adelante, sin tener en cuenta en nº de zumbadores. Si hacéis esto 14 veces, ¡estaréis en casa !

Ejercicio 6: Re-escribe el programa para el ejercicio 4, pero esta vez puede no haber un zumbador en cada esquina. Guarda tu programa con el nombre “karel_6.kp”.   La nueva  instrucción debería coger un zumbador en la posición actual, si es que lo hay. Deberíais usar esta instrucción para coger todos los zumbadores mientras Karel va a su casa en diagonal. Aseguraros de que tenéis el mundo “diagonal.km” cargado y probar vuestro programa. Karel debería finalizar el la esquina de la 1ª Calle con la 1ª Avenida, con todos los zumbadores que ha ido cogiendo por el camino, y apagarse.

La sentencia define-nueva-instruccion/como