Coding for KidsCoding for Kids
クリエイティブレベル挑戦教師ガイド
機能に投票
上級Python開発コース
チャプター
>
レベル

上級クラス
メソッドのオーバーライド

目的

オーバーライドされたメソッドを持つオブジェクトを作成することで、オイルを瓶詰めし、肉を調理する。

野菜を調理するために利用できるオイルがいくつかありますが、扱いやすくするためにまず瓶詰めする必要があります。前のレベルと同様、クラスを使用してオブジェクトを作成する方法は、この目的を達成する効果的な手段です。また、クラス内でオブジェクト継承をより効果的に活用する方法、例えば、child クラスが parent クラスの関数をオーバーライドすることなども可能です。

# Parent Class class oil_bottle: label = "" async def label_bottle(self): await player.read() # Child Class class fill_bottle(oil_bottle): def fill_bottle(self): player.place("empty bottle") player.collect("oilbottle") async def label_bottle(self): await player.write(self.label)

上記のコードでは、child クラスが parent クラスの関数 label_bottle() をオーバーライドして、瓶のラベルを書き換えています。これにより、async 関数を使用してカスタムメッセージを設定することも可能になります。

まずは、フィールド上にある4つの空の瓶をすべて回収し、回収後、暗いXマークの方へ歩き、クラスを使ってオブジェクトを作成してください。

瓶詰めすべきオイルは4種類あり、各々は機械の前にあるカラフルなカーペットに対応しています。黄色のカーペットでは olive_oil、緑のカーペットでは avocado_oil、青のカーペットでは canola_oil、赤のカーペットでは vegetable_oil が瓶詰めされます。

それぞれのオイルに対してオブジェクトを作成し、ラベルを書いて、child クラスの関数 label_bottle()fill_bottle() を実行してください。例えば:

olive_oil = fill_bottle() olive_oil.label = "Olive Oil" olive_oil.label_bottle() olive_oil.fill_bottle()

それぞれのラベルには、各オイルの大文字で始まる名前が含まれている必要があります。例としては、"Olive Oil"、"Avocado Oil"、"Canola Oil"、"Vegetable Oil" となります。

オイルの瓶詰めが完了したら、袋の前にある明るいXマークの場所へ歩き、collect() 関数を使って袋から "onion" を回収してください。その後、金色のXマークへ歩き、オイルと玉ねぎを一緒に ingredients というリストに格納して調理します。例えば: ingredients = ["Olive Oil", "onion"] 。リストとともに place() 関数を使って、材料を調理してください。

最後に、残ったオイルを oils というリストに格納します。例: oils = ["Avocado Oil","Canola Oil","Vegetable Oil"] 。紫のカーペット上の明るいXマークへ歩き、キャビネットに正面を向いて、オイルリストを使って place() 関数でアイテムをキャビネットに収納し、レベルをクリアしてください。

コードブック