上級Python開発コース
チャプター
>
レベル
非同期/待機
メッセージの読み取り
目標
read() 関数を使用してワインセラー内のアイテム番号が正しいことを確認し、余剰在庫を集計します。
ワインセラーにはワインボトルが入ったいくつかの木箱があり、これらは上階へ移動して配布される予定です。倉庫では、テーブルの上に注文のメモが置かれ、その隣にボトルの入った木箱が配置されています。各木箱のボトルの数がメモの記載と一致しているか確認し、不足しているアイテムを補充する必要があります。
まず、ワインルームに散らばっているボトルを集め、不足している注文品を補充できるように準備してください。ワインボトルは3種類あり、収集後は次の変数にそれぞれの個数を代入します: empty_bottles、purple_bottles、yellow_bottles。
フィールド内のすべてのボトルを取得したら、倉庫内にあるライト X マークの方に歩き、メモの方向を向いてください。read() 関数を使用して、ポップアップをトリガーすることでメモ上の注文情報を読み取ります。write() 関数に似て、read() 関数は async 関数であり、コードを書く前に await を付ける必要があります。例:await player.read()。
メモは、下に敷かれたカーペットの色で区別されています。注文番号が分かったら、色分けされた木箱の前にあるダーク X マークへ歩み、speak() 関数を使用して各木箱の中身を確認してください。木箱ごとに対応する3つの定数が定義されており、それぞれ green_crate、blue_crate、red_crate となります。
各木箱の中身が、対応するカーペットの色のメモに記載されている内容と一致しているか確認してください。もし、メモに記載された不足分が木箱にある場合は、その不足分を該当する木箱に追加してください。変数 empty_missing、purple_missing、yellow_missing を作成し、それぞれの不足数を木箱の中身に加えます。
変数が設定されたら、place() 関数を使用して不足しているボトルを木箱に追加します。例えば:player.place(empty_missing)。すべてのアイテムの設定が完了したら、ゴールドの X マークのところへ歩み、保管しなかった余ったボトルの合計を write() してください。
コードエディターにドラフトメッセージが表示されるので、保管しなかった余りのボトルの正確な数を、作成した2つの変数を引き算することで設定してください。例えば:empty_bottles-empty_missing。すべての残りのアイテムが集計されたら、レベルクリアとなります。