Cours avancé de développement Python
Chapitre
>
Niveau
Async/Await
Mise en place d'une question
Objectif
Rassemblez divers matériaux de cuisine et préparez-vous à cuisiner en configurant des « questions ».
Il existe divers matériaux de cuisine et alimentaires qui doivent être préparés et disposés pour une utilisation et une consommation ultérieures. Pour faciliter cela, vous pouvez configurer une question(), c'est une fonction async similaire à write() mais qui, au lieu d'afficher un message statique, permet d'afficher une question avec les options “Yes” et “No”.
Pour configurer la fonction question(), vous devez également mettre en place une fonction personnalisée afin de gérer les conditions. Cette fonction doit commencer par async pour être reconnue comme une fonction async. À l'intérieur, la fonction question() est assignée à une variable et est précédée de await, comme les autres fonctions async. En argument, la fonction question() reçoit une chaîne de caractères contenant la question que vous allez poser.
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
Dans la fonction, vous aurez une instruction if qui déterminera l'action à entreprendre si la réponse est vraie ou fausse. Les fonctions personnalisées pour les questions seront configurées dans l'éditeur de code et vous permettront de collecter et/ou de déposer plusieurs objets à partir d'une source unique.
Les objets concernés à préparer dans la cuisine sont : "water", "ice", "meat" et "potato". Ces objets doivent être collectés et déposés dans différentes zones de la cuisine. Le "ice" doit être déposé dans un congélateur, le "water" doit être placé dans la marmite, tandis que "meat" et "potato" doivent être déposés dans des fours différents.
D'abord, rendez-vous à la marque X dorée dans la pièce de droite et utilisez la fonction personnalisée await dispencer() décrite dans l'éditeur de code. Faites face au congélateur à glace et utilisez la fonction deux (2) fois. Elle posera une question et vous devrez répondre Yes pour collect() le "ice" et No pour collect() le "water".
Une fois que vous avez collecté ces deux objets, rendez-vous à la marque X sombre à côté de vous, devant le congélateur, et utilisez la fonction place() pour déposer le "ice" à l'intérieur du congélateur. Comme ceci : player.place("ice").
Ensuite, descendez jusqu'à la marque X claire devant un sac et utilisez la fonction collect() pour attraper un "potato" de cette manière : player.collect("potato").
Ensuite, rendez-vous à la marque X sombre à côté de la marmite centrale et place() le "water" que vous avez collecté, comme ceci : player.place("water"). Une fois cela fait, dirigez-vous vers la marque X claire située au-dessus, devant le réfrigérateur, et collectez le "meat" de cette manière : player.collect("meat").
Maintenant que vous avez collecté à la fois le "meat" et le "potato", rendez-vous aux deux (2) marques X dorées dans la pièce de gauche et utilisez la fonction personnalisée await oven() qui est écrite dans l'éditeur. Pour la question, dans le four de droite, vous devez choisir la réponse pour cuire au four le "potato" et, dans le four de gauche, vous devez choisir la réponse pour griller le "meat" afin de terminer le niveau.