Coding for KidsCoding for Kids
Niveles CreativosDesafíosGuía del Maestro
Votar por funciones
Curso Avanzado de Desarrollo en Python
Capítulo
>
Nivel

Funciones Avanzadas
Funciones Anidadas

Objetivo

Recoge, redistribuye y guarda la tela producida por las máquinas usando funciones anidadas.

A veces querrás colocar funciones dentro de otras funciones para ampliar las capacidades de esa función. A estas se les llaman funciones anidadas o funciones internas; tienen diversos usos, desde crear código reutilizable sencillo dentro de una función, hasta proteger tus funciones de manipulaciones externas.

Dentro del taller hay varias máquinas de fabricación de tela, algunas tienen tela lista para almacenarse y otras requieren hilo para terminar de producir la tela. Cada una tiene una alfombra de color "red" o "green" frente a ella, lo que indicará cómo se utiliza. En el editor de código se escribirá una función que nos permitirá operar la máquina y, ya sea, recoger o colocar materiales de la máquina.

def operate_machine(color): def collect_cloth(): # Collect Code player.speak("Cloth is ready for storage") def place_thread(): # Place Code player.speak("Machine needed more materials") if color == "green": collect_cloth() if color == "red": place_thread()

La función se llama operate_machine y toma un argumento llamado color. Dependiendo del color de la alfombra que esté frente a la máquina, introducir ya sea "red" o "green" como argumento cambiará la operación de la máquina, permitiéndote colocar o recoger elementos.

Dentro de la función encontrarás dos funciones anidadas, llamadas collect_cloth() y place_thread(), utilizadas para los propósitos indicados en sus nombres. Les faltan líneas necesarias para realizar su acción: en collect_cloth() añade la línea player.collect("cloth"), que va seguida de player.speak("Quilt is ready for storage") y en place_thread() añade la línea player.place("thread") que va seguida de player.speak("Machine needed more materials").

Una vez que se hayan agregado las líneas de código faltantes a las funciones anidadas, camina hasta la marca X luminosa frente a la caja y recoge "thread" para usarlo en la máquina, de esta manera: player.collect("thread").

Dirígete hacia las marcas X oscuras dentro del taller y utiliza la función personalizada operate_machine mientras te enfrentas a las máquinas. Añade ya sea "red" o "green" como argumento, dependiendo del color de la alfombra en la que se encuentre la marca X, por ejemplo: operate_machine("red"). Esto te permitirá colocar el hilo y recoger la tela.

Una vez que hayas recogido toda la tela, camina hasta la marca X dorada junto a la caja en el fondo y utiliza la función place() para guardar la tela. Crea una variable llamada cloths, asígnale el número de telas que has recogido y guárdala en la caja para completar el nivel, de esta forma: player.place(cloths).

Libro de Código