Curso Avanzado de Desarrollo en Python
Capítulo
>
Nivel
Async/Await
Configurando una pregunta
Objetivo
Recoge varios materiales de cocina y prepárate para cocinar configurando "preguntas".
Existen varios materiales de cocina y alimentos que deben prepararse y configurarse para su uso y consumo posterior. Para facilitar esto, puedes configurar una question(), que es una función async similar a write(), pero en lugar de mostrar un mensaje estático, puedes mostrar una pregunta con opciones “Yes” y “No”.
Para configurar la función question() también debes crear una función personalizada para manejar condiciones. Esta función debe comenzar con async para establecerla como una función async. Dentro, la función question() se almacena en una variable y la función tiene await escrito al frente, como las otras funciones async. Como argumento, la función question() recibe una cadena con la pregunta que vas a hacer.
async def question_function():
answer = await player.question("Question you would like to ask")
if answer:
# Actions to take if answer is Yes
else:
# Actions to take if answer is No
Dentro de la función tendrás una sentencia if que determinará qué acción tomar si la respuesta es verdadera o falsa. Las funciones personalizadas de pregunta se configurarán en el editor de código y te permitirán recoger y/o colocar múltiples elementos de una única fuente.
Los elementos en cuestión que deben prepararse en la cocina son: "water", "ice", "meat" y "potato". Estos elementos deben recogerse y colocarse en diferentes áreas de la cocina. El "ice" debe colocarse dentro de un congelador, el "water" debe ponerse dentro de la olla, y tanto el "meat" como el "potato" deben colocarse dentro de diferentes hornos.
Primero, camina hacia la marca X dorada en la sala de la derecha y utiliza la función personalizada await dispencer() que se describe en el editor de código. Frente a la caja de hielo, usa la función dos (2) veces. Se te hará una pregunta y debes responder Yes para collect() "ice" y No para collect() "water".
Una vez que hayas recogido ambos elementos, camina hacia la marca X oscura junto a ti, frente al congelador, y usa la función place() para depositar el "ice" dentro del congelador. Así: player.place("ice"). Luego, camina hacia la marca X clara frente a un saco y usa la función collect() para agarrar un "potato" de esta manera: player.collect("potato").
Posteriormente, camina hacia la marca X oscura junto a la olla central y place() el "water" que habías recogido, de la siguiente manera: player.place("water"). Una vez hecho, acércate a la marca X clara situada arriba, frente al refrigerador, y recoge "meat", así: player.collect("meat").
Ahora que has recogido tanto el "meat" como el "potato", camina hacia las dos (2) marcas X doradas en la sala de la izquierda y utiliza la función personalizada await oven() que está escrita en el editor. Para la pregunta, en el horno derecho, debes elegir la opción para hornear el "potato", y para el horno izquierdo debes elegir la opción para asar el "meat" para completar el nivel.