Track
/
Ruby
Ruby
/
Esercizi
/
Il giardino della scuola materna
Il giardino della scuola materna

Il giardino della scuola materna

Medio

Introduzione

La classe della scuola dell'infanzia sta imparando a coltivare le piante. L'insegnante ha pensato che sarebbe stata una buona idea dare alla classe dei semi da piantare e far crescere nella terra. A questo scopo, i bambini hanno messo dei bicchierini sui davanzali e hanno piantato un tipo di pianta in ogni bicchiere. I bambini hanno potuto scegliere i loro preferiti tra quattro tipi di semi disponibili: grass, clover, radishes e violets.

Istruzioni

Il tuo compito è, dato un diagramma, determinare quali piante spettano a ciascun bambino della classe dell'asilo.

Nella classe ci sono 12 bambini:

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

Vengono piantati quattro tipi diversi di semi:

Pianta Codifica nel diagramma
Grass G
Clover C
Radish R
Violet V

Ogni bambino riceve quattro bicchieri, due su ogni riga:

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

L'insegnante assegna i bicchieri ai bambini in ordine alfabetico in base ai loro nomi: Alice viene per prima e Larry per ultimo.

Ecco un esempio di diagramma che rappresenta le piante di Alice:

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

Nella prima riga, quella più vicina alle finestre, ha una violet ed un radish. Nella seconda riga ha un radish e del grass.

Il programma riceverà le piante da sinistra a destra, a partire dalla riga più vicina alle finestre. Da qui dovrebbe riuscire a determinare quali piante appartengono a ciascun bambino.

Per esempio, se gli viene detto che il giardino è questo:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Se poi gli vengono chieste le piante di Alice, dovrebbe restituire:

  • Violets, radishes, violets, radishes

Mentre chiedendo le piante di Bob si otterrebbe:

  • Clover, grass, clover, clover

Implementazione

L'esercizio richiede di scrivere una classe che fornisca un metodo per ogni bambino dell'asilo. Puoi rendere il lavoro meno ripetitivo (e più divertente!) se, invece di definire manualmente 12 metodi diversi, usi un po' di metaprogrammazione. Se non sai da dove cominciare, esplora i metodi method_missing o define_method.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Ruby Exercism

Vuoi iniziare Il giardino della scuola materna?

Iscriviti a Exercism per imparare e padroneggiare Ruby con 21 concetti121 esercizi e il mentoring di persone reali, tutto gratis.