Trilhas
/
Ruby
Ruby
/
Exercícios
/
Jardim de Infância
Jardim de Infância

Jardim de Infância

Médio

Introdução

A turma do jardim de infância está aprendendo sobre o cultivo de plantas. A professora achou que seria uma boa ideia dar sementes para a turma plantar e cultivar na terra. Para isso, as crianças colocaram copinhos ao longo dos parapeitos das janelas e plantaram um tipo de planta em cada copo. As crianças puderam escolher suas favoritas entre quatro tipos de sementes disponíveis: grass, clover, radishes e violets.

Instruções

Sua tarefa é, dado um diagrama, determinar de quais plantas cada criança da turma do jardim de infância é responsável.

A turma tem 12 crianças:

  • Alice, Bob, Charlie, David, Eve, Fred, Ginny, Harriet, Ileana, Joseph, Kincaid e Larry.

São plantados quatro tipos diferentes de sementes:

Planta Representação no diagrama
Grass G
Clover C
Radish R
Violet V

Cada criança recebe quatro copos, dois em cada linha:

[window][window][window]
........................ # each dot represents a cup
........................

O professor distribui os copos para as crianças em ordem alfabética pelos nomes, o que significa que Alice vem primeiro e Larry vem por último.

Veja um diagrama de exemplo que representa as plantas da Alice:

[window][window][window]
VR......................
RG......................

Na primeira linha, mais perto das janelas, ela tem uma violet e um radish. Na segunda linha, ela tem um radish e um pouco de grass.

Seu programa vai receber as plantas da esquerda para a direita, começando pela linha mais próxima das janelas. A partir disso, ele deve conseguir determinar quais plantas pertencem a cada estudante.

Por exemplo, se for dito que o jardim está assim:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Então, se pedirem as plantas da Alice, ele deve fornecer:

  • Violets, radishes, violets, radishes

Já se pedirem as plantas do Bob, o resultado seria:

  • Clover, grass, clover, clover

Implementação

O exercício pede que você escreva uma classe que forneça um método para cada criança do jardim de infância. Você pode deixar seu trabalho menos repetitivo (e mais divertido!) se, em vez de definir 12 métodos manualmente, usar um pouco de metaprogramação. Se você não sabe por onde começar, explore os métodos method_missing ou define_method.

Editar via GitHub O link abre em uma nova janela ou aba
Ruby Exercism

Tudo pronto para começar Jardim de Infância?

Crie sua conta no Exercism para aprender e dominar Ruby com 21 conceitos121 exercícios e mentoria humana de verdade, tudo de graça.