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

高度なリスト
行列の変更

目的

行列を修正して、ワインラックにワインボトルを収集・保管します。

ワインラックに保管すべき複数のワインボトルがあります。しかし、既に複数のボトルがラックに保管されているため、それぞれのアイテムは所定の位置に配置して保管する必要があります。

ラック上のボトルは 行列、つまり 入れ子リスト として管理されています。行列 は、すべての要素が全く同じ長さのリストで構成された入れ子リストであり、これにより、アイテムが行と列に分割されたグリッド状になります。例えば:

matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], [0, 0, 0] ]

上記のコードでは、3列と4行を持つ 行列 が作成されています。行列 内の要素にアクセスするには、通常のリストの要素にアクセスするのと同様ですが、今回は 2 つのエントリ(行と列)を指定します。例えば、上記のコードでは:matrix[0][0] = 1matrix[0][1] = 2matrix[1][0] = 4 、などとなります。

地下室には 4 種類のワインボトルがあり、対象はそれぞれ:"purple bottle"、"green bottle"、"blue bottle"、"yellow bottle" です。フィールド上の全てのボトルを集め、ラックに収めてください。

また、クレート内にもボトルが保管されているため、光る X マークのところへ向かい、クレートに向かって collect() 関数を使用してボトルを取得してください。クレートの中身は 2 つの定数 lower_crateupper_crate に保持されており、これらの名前はマップ上での位置に対応しています。使用例:player.collect(lower_crate)

すべてのボトルを収集したら、各種類のボトルの個数をそれぞれの変数 purple_bottlegreen_bottleblue_bottleyellow_bottle に代入してください。その後、金色の X マークの場所へ向かい、ワインラックに立ってください。

コードエディタ上には wine_rack という名前の 行列 が表示されます。行列 内で値が 0 となっている場所を探し、収集したボトルをその値に置き換えてください。各行には、追加すべきボトルの色が示されています。行列 に新しいアイテムを追加するには、値を配置したい行と列を指定して入力します。例:wine_rack[0][1] = purple_bottle

すべてのリストの位置は 0 から始まることに留意し、すべてのアイテムが 行列 に追加され完全になったら、place() 関数の後に speak() 関数を金色の X マークで使用して、行列 の値を確認しレベルをクリアしてください。例:player.place(wine_rack)player.speak(wine_rack)

コードブック