上級Python開発コース
チャプター
>
レベル
非同期/待機
質問の設定
目的
「質問」を設定して、さまざまなキッチン材料を集め、料理の準備をする
さまざまなキッチンおよび食品の材料が後で使用・消費するために設定され、準備される必要があります。これを容易にするために、question() を設定することができます。これは write() と似た async 関数ですが、静的なメッセージを表示する代わりに、「Yes」 と 「No」 のオプション付きの質問を表示します。
question() 関数を設定するには、条件を処理するためのカスタム関数も設定する必要があります。この関数は async 関数として認識させるために先頭に async を記載する必要があります。内部では、question() 関数は変数に格納され、他の async 関数と同様に前に await が記載されています。引数として、question() 関数にはあなたが尋ねたい質問の文字列が渡されます。
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
関数内では、答えが true または false であるかに応じてどのアクションを取るかを判断する if 文が含まれます。質問用カスタム関数はコードエディターで設定され、単一のソースから複数のアイテムを収集および/または配置することが可能になります。
キッチンで準備する必要がある対象のアイテムは: "water" 、"ice" 、"meat" および "potato" です。これらのアイテムは収集され、キッチン内の異なる場所に配置する必要があります。"ice" は冷凍庫内に、"water" は鍋内に、"meat" と "potato" はそれぞれ別々のオーブン内に配置する必要があります。
まず、右の部屋にある金色の X マークまで歩き、コードエディターに記載されているカスタム関数 await dispencer() を使用します。アイスボックスに向かい、この関数を 2 回使用します。質問が表示されるので、collect() 関数で "ice" を収集するためには Yes と答え、collect() 関数で "water" を収集するためには No と答えなければなりません。
これらの両方のアイテムを収集したら、隣にある暗い X マーク(冷凍庫の前)まで歩き、place() 関数を使用して "ice" を冷凍庫内に配置します。このように: player.place("ice") 。その後、袋の前にある明るい X マークまで歩いて、collect() 関数を使用して "potato" を取得します。このように: player.collect("potato") 。
その後、中央の鍋の隣にある暗い X マークまで歩き、収集した "water" を place() 関数で配置します。このように: player.place("water") 。完了したら、その上にある明るい X マークまで歩き、冷蔵庫の前で "meat" を collect() 関数で収集します。このように: player.collect("meat") 。
これで "meat" と "potato" の両方を収集したので、左の部屋にある 2 つの金色の X マークまで歩き、エディターに記載されているカスタム関数 await oven() を使用します。右のオーブンでの質問では、"potato" を bake する答えを選択し、左のオーブンでは "meat" を grill する答えを選択することでレベルを完了させます。