Coding for KidsCoding for Kids
Níveis CriativosDesafiosGuia do Professor
Votar em funcionalidades
Curso Avançado de Desenvolvimento Python
Capítulo
>
Nível

Classes Avançadas
Sobrecarga de Operadores

Objetivo

Contabilize a quantidade de vinho que está sendo clarificado usando vetores e Sobrecarga de Operadores.

Após o vinho ser prensado, ele precisa ser filtrado e clarificado; há vários barris sendo filtrados e todo ele precisa ser enxaguado. É importante contabilizar a quantidade de vinho que está sendo produzida para que os barris possam ser selados e envelhecidos.

Para fazer isso, você precisa criar vetores e somá-los; eles são semelhantes a listas, mas não são tão flexíveis, porém são mais eficientes no uso de memória. Normalmente, são usados para lidar com coordenadas; neste caso, usaremos eles como variáveis que armazenam mais de um valor. A soma dos vetores é realizada usando Sobrecarga de Operadores, que estende a funcionalidade dos objetos de classe para que possamos usar operadores com eles da mesma forma que se utiliza em valores normais.

Para começar, caminhe e recolha as latas de água metálicas situadas no topo da sala; elas serão usadas para ajudar a enxaguar o vinho que está sendo filtrado nos barris. Uma vez recolhidas, caminhe até a marca X escura sobre o tapete vermelho, vire-se para o barril e comece a vetorização do conteúdo de cada barril.

As marcas X estão dispostas em conjuntos de três (3) para cada cor de tapete: uma marca X dourada, uma marca X clara e uma marca X escura. Em todas as marcas X escuras e claras, use a função water() para ajudar a enxaguar os barris. Além disso, em todas as marcas X escuras e claras, use a função read() para identificar a quantidade de vinho que está sendo processada nessa coluna de barris. Na marca X dourada, utilize a função write() para anotar a soma das quantias.

No editor de código, há uma classe chamada vector; ela é usada para que você não apenas possa criar um vetor, mas também somá-lo. Crie objetos vector para armazenar os dados identificados nas marcas X claras e escuras; por exemplo, nos tapetes red, está sendo filtrado vinho tinto:

# Create object using data from dark X mark red_wine_dark = vector(345, 272) # Create object using data from light X mark red_wine_light = vector(248, 432) # Add together vectors for totals red_wine_total = red_wine_dark + red_wine_light

Em um vetor, a primeira posição é chamada x e a segunda posição é y, sendo a fórmula a seguinte: object_name = vector(x,y). Isso é relevante para preencher os vetores com as informações adquiridas pela função read().

Nas marcas X douradas, use a função write() para anotar o total de cada conjunto de vetores; por exemplo, no caso das marcas X do tapete vermelho, escreve-se assim:

await player.write( "There is a total of %s pounds on the left barrels and %s pounds on the right barrels" % (red_wine_total.x, red_wine_total.y)

Lembre-se de adicionar .x e .y no final do total para identificar os valores de cada vetor.

Para cada conjunto de tapetes coloridos, há um tipo diferente de vinho sendo filtrado. No tapete red mencionado, é filtrado red_wine; nos tapetes yellow, é filtrado sparkling_wine; nos tapetes green, é filtrado white_wine; e nos tapetes orange, está sendo filtrado orange_wine.

Uma vez que todas as marcas X claras e escuras tenham sido enxaguadas com a função water() e todos os sinais nas marcas X douradas tenham os totais anotados, você terá completado o nível.

Livro de Código