Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom
Zaawansowane listy
Modyfikacja macierzy
Cel
Zbierz i przechowaj butelki wina na stojaku na wino poprzez modyfikację macierzy.
Istnieje kilka butelek wina, które należy przechować na stojaku na wino. Jednakże, na stojaku są już umieszczone inne butelki; przedmioty muszą być umieszczone w określonych miejscach, aby mogły zostać schowane.
Buteleki na stojaku są przechowywane w macierzy, rodzaju listy zagnieżdżonej. Macierze to listy zagnieżdżone, w których każdy element jest listą o dokładnie tej samej długości, co tworzy swego rodzaju siatkę, w której elementy są podzielone na wiersze i kolumny. Na przykład:
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], [0, 0, 0] ]
W powyższym kodzie mamy macierz z trzema (3) kolumnami i czterema (4) wierszami. Aby uzyskać dostęp do elementu znajdującego się wewnątrz macierzy, wystarczy podać numer wiersza i kolumny, w której element się znajduje, podobnie jak w standardowej liście, ale z dwoma indeksami zamiast jednego. Na przykład, w oparciu o powyższy kod: matrix[0][0] = 1 , matrix[0][1] = 2 , matrix[1][0] = 4 , itd.
W piwnicy znajduje się cztery (4) różne rodzaje butelek wina, a mianowicie: "purple bottle" , "green bottle" , "blue bottle" , "yellow bottle". Zbierz wszystkie butelki z terenu, aby mogły zostać przechowane na stojaku.
Są też butelki przechowywane wewnątrz skrzyń, podejdź do lekkiego X i skorzystaj z funkcji collect() stojąc twarzą do skrzyń, aby odebrać butelki. Istnieją dwie stałe, które przechowują zawartość skrzyń: lower_crate i upper_crate. Ich nazwy odpowiadają ich położeniu na mapie i są używane w następujący sposób: player.collect(lower_crate).
Gdy wszystkie butelki zostaną zebrane, umieść liczbę butelek zebranych dla każdego rodzaju do zmiennych, mianowicie: purple_bottle , green_bottle , blue_bottle , yellow_bottle. Następnie podejdź do złotego X i zwróć się w stronę stojaka na wino.
W edytorze kodu wyświetlona zostanie macierz o nazwie wine_rack, poszukaj elementów w macierzy, których wartość wynosi 0 i dodaj do nich butelki, które zebrałeś. Macierz będzie miała zarysowany kolor butelki, którą należy dodać, w każdym wierszu. Aby dodać nowy element do macierzy, wpisz numer wiersza i kolumny, w którym chcesz umieścić wartość, na przykład: wine_rack[0][1] = purple_bottle.
Pamiętaj, że pozycje wszystkich list zaczynają się od 0. Gdy wszystkie elementy zostaną dodane do macierzy i będzie ona kompletna, użyj funkcji place() a następnie speak() na złotym X, podając nazwę macierzy, aby potwierdzić jej wartość i zakończyć poziom, na przykład: player.place(wine_rack) , player.speak(wine_rack).