고급 파이썬 개발 과정
챕터
>
레벨
고급 목록
행렬 수정하기
목표
매트릭스를 수정하여 와인 랙에 와인 병을 수집하고 저장합니다.
와인 랙에 보관해야 할 여러 와인 병이 있습니다. 하지만 이미 랙에 여러 병이 저장되어 있기 때문에, 아이템을 제자리에 배치하여 보관해야 합니다.
랙에 있는 병들은 Matrix, 즉 일종의 중첩 리스트로 저장되어 있습니다. Matrix는 각 아이템이 정확히 같은 길이의 리스트인 중첩 리스트로, 아이템들이 행과 열로 구분된 일종의 격자를 만듭니다. 예를 들어:
matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], [0, 0, 0] ]
위 코드에서는 열이 세 (3) 개, 행이 네 (4) 개인 Matrix를 가지고 있습니다. Matrix 내부의 아이템에 접근하려면, 단일 리스트에 접근하듯 두 개의 항목(행과 열)을 명시하면 됩니다. 예를 들어, 위 코드에 따르면: matrix[0][0] = 1 , matrix[0][1] = 2 , matrix[1][0] = 4 등으로 접근할 수 있습니다.
셀러에는 네 (4) 가지 종류의 와인 병이 있습니다. 종류는 다음과 같습니다: "purple bottle", "green bottle", "blue bottle", "yellow bottle". 필드에 있는 모든 병을 줍어 랙에 보관할 수 있도록 하세요.
상자 안에도 병들이 저장되어 있으므로, 빛나는 X 표지로 이동하여 상자를 향한 채 collect() 함수를 사용해 병들을 줍으세요. 상자 안의 내용물을 담고 있는 두 개의 상수는 lower_crate와 upper_crate 입니다. 이들의 이름은 지도에서의 위치를 나타내며 다음과 같이 사용합니다: player.collect(lower_crate) .
모든 병을 수집한 후, 각 종류별로 수집한 병의 개수를 purple_bottle, green_bottle, blue_bottle, yellow_bottle 변수에 저장하세요. 그 후, 금색 X 표지로 이동하여 와인 랙을 향하세요.
코드 에디터에는 wine_rack이라는 이름의 Matrix가 표시될 것입니다. Matrix 내에서 값이 0인 아이템들을 찾아서, 수집한 병들을 해당 값에 추가하세요. Matrix의 각 행에는 추가해야 할 병의 색상이 윤곽선으로 표시되어 있습니다. Matrix에 새로운 아이템을 추가하려면 원하는 위치의 행과 열을 지정하여 값을 배치하면 됩니다. 예를 들어: wine_rack[0][1] = purple_bottle .
모든 리스트의 위치는 0에서 시작함을 기억하세요. 모든 아이템이 Matrix에 추가되어 완성되면, place() 함수와 speak() 함수를 금색 X 표지에서 Matrix의 이름과 함께 사용하여 그 값을 확인하고 레벨을 완료하세요. 사용 예: player.place(wine_rack), player.speak(wine_rack).