Coding for KidsCoding for Kids
Luovat TasotHaasteetOpettajan Opas
Äänestä ominaisuuksia
Edistynyt Python-kehityskurssi
Luku
>
Taso

Async/Await
Kysymyksen asettaminen

Tavoite

Kerää erilaisia keittiömateriaaleja ja valmistele ruoanlaittoa asettamalla "questions".

Keittiössä on erilaisia keittiö- ja ruokamateriaaleja, jotka täytyy kerätä ja valmistella myöhempää käyttöä ja kulutusta varten. Tämä onnistuu määrittämällä question()-funktio, joka on async-funktio, samalla tavalla kuin write(), mutta staattisen viestin näyttämisen sijaan voit näyttää kysymyksen, jossa on "Yes" ja "No" -vaihtoehdot.

Jotta question()-funktio saadaan toimimaan, sinun täytyy myös määrittää oma funktio ehtojen käsittelemiseksi. Tämän funktion alussa tulee olla async, mikä osoittaa, että kyseessä on async-funktio. Funktion sisällä question() tallennetaan muuttujaan ja sen eteen kirjoitetaan await kuten muissakin async-funktioissa. Argumenttina question()-funktiolle on merkkijono, joka sisältää kysymyksen, jonka aiot esittää.

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

Funktion sisällä käytät if-lausetta, joka määrittää, mitä toimenpidettä suoritetaan sen mukaan, onko vastaus tosi vai epätosi. Kysymysfunktiot määritellään koodieditorissa, ja niiden avulla voit kerätä ja/tai sijoittaa useita esineitä yhdestä lähteestä.

Keittiössä valmisteltavat esineet ovat: "water", "ice", "meat" ja "potato". Nämä esineet täytyy kerätä ja sijoittaa keittiön eri alueille. "ice" täytyy sijoittaa pakastimeen, "water" pataan, ja sekä "meat" että "potato" täytyy sijoittaa eri uuneihin.

Kävele ensin oikean huoneen kultaiselle X-merkillä ja käytä koodieditorissa määriteltyä omaa funktiota await dispencer(). Käänny jäänlaatikon suuntaan ja käytä funktiota kahdesti (2 kertaa). Se kysyy kysymyksen, ja sinun täytyy vastata Yes kerätäksesi collect() "ice" ja No kerätäksesi collect() "water".

Kun olet kerännyt molemmat esineet, kävele viereisen tumman X-merkin luo, pakastimen edessä, ja käytä place()-funktiota sijoittaaksesi "ice" pakastimeen. Näin: player.place("ice"). Sen jälkeen kävele alas kevyemmän X-merkin luo, joka on pussin edessä, ja käytä collect()-funktiota napataksesi "potato" näin: player.collect("potato").

Tämän jälkeen kävele keskipataan viereisen tumman X-merkin luo ja place() keräämäsi "water" näin: player.place("water"). Kun tämä on tehty, kävele kevyemmälle X-merkin yläpuolelle, joka sijaitsee jääkaapin edessä, ja kerää "meat" näin: player.collect("meat").

Nyt kun olet kerännyt sekä "meat":in että "potato":n, kävele kahdelle (2) vasemman huoneen kultaiselle X-merkillä ja käytä koodieditorissa määriteltyä omaa funktiota await oven(). Kysymyksessä oikeassa uunissa sinun täytyy valita vastaus, jolla bake-toiminnolla valmistetaan "potato", ja vasemmassa uunissa sinun täytyy valita vastaus, jolla grill-toiminnolla valmistetaan "meat", jotta taso saadaan suoritettua.

Koodikirja