Python開発コース
チャプター
>
レベル
辞書の使用
辞書を反復処理する
目的
フィールド内のすべての素材を回収し、特定のコンテナに収納する前に集めたアイテムのインベントリを行います。
橋の近くの前哨基地が嵐によって破壊され、素材が至る所に散乱していますが、その素材は後で使えると思います。拾った各オブジェクトのインベントリを行い、橋の向こうの保管庫にしまってください。
まず、フィールドに散らばったすべての破片、「branches」、「boulders」、そして「planks」を回収してください。すべてのアイテムを集めたら、それらを materials という名前の辞書に入れ、3つの素材名とそれに対応する数量をすべて追加します。
materials = {} materials["branches"] = number of branches collected ......
すべてが辞書に入れられたら、X の明るいマークに向かい、speak() 関数を使って収集したすべての素材のインベントリを実行します。辞書はリストとは異なるため、同じ方法で順序通りにループすることはできませんが、独自の方法でそれを実行できます。
for name, number in materials.items(): player.speak("There were %d %s collected" % ( number, name))
この場合、2つの変数 name と number を設定することによって辞書内の2つのフィールドを取得できます。in 文を続けて辞書の名前を使用し、items() 関数を使うことで通常のfor ループのように辞書を反復処理できます。
インベントリを実行した後、暗い X マークに向かい、辞書内に集めた素材を place() 関数を使ってコンテナに収納します。例:player.place(materials["branches"]) 。左のコンテナには「branches」、中央のコンテナには「boulders」、右のコンテナには「planks」を置きます。すべてを正しい位置に収納して、レベルをクリアしてください。
コードブック