Kurzusok
/
Ruby
Ruby
/
Feladatok
/
Óvodakert
Óvodakert

Óvodakert

Közepes

Bevezetés

Az óvodai csoport éppen azt tanulja, hogyan lehet növényeket termeszteni. Az óvó néni úgy gondolta, jó ötlet lenne, ha a gyerekek magokat kapnának, hogy elültessék és megnövesszék őket a földben. Ezért a gyerekek kis poharakat tettek az ablakpárkányokra, és minden pohárba egy-egy fajta növényt ültettek. A gyerekek négyféle mag közül választhatták ki a kedvencüket: fű, lóhere, retek és ibolya.

Utasítások

A feladatod, hogy egy diagram alapján meghatározd, hogy az óvodai osztály melyik gyereke mely növényekért felelős.

Az osztályba 12 gyerek jár:

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

Négyféle magot ültetnek el:

Növény Kódolás a diagramban
Grass G
Clover C
Radish R
Violet V

Minden gyerek négy poharat kap, soronként kettőt:

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

A tanár a poharakat a gyerekek nevének ábécésorrendje szerint osztja ki, ami azt jelenti, hogy Alice következik elsőként, Larry pedig utolsóként.

Íme egy példadiagram, amely Alice növényeit mutatja:

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

Az első sorban, az ablakokhoz legközelebb egy violet és egy radish található. A második sorban egy radish és némi grass.

A programod a növényeket balról jobbra kapja meg, az ablakokhoz legközelebbi sorral kezdve. Ebből meg kell tudnia határozni, hogy melyik növény melyik tanulóhoz tartozik.

Például ha azt kapja bemenetként, hogy a kert így néz ki:

[window][window][window]
VRCGVVRVCGGCCGVRGCVCGCGV
VRCCCGCRRGVCGCRVVCVGCGCV

Akkor ha Alice növényeit kérdezik tőle, ezt kell visszaadnia:

  • Violets, radishes, violets, radishes

Ha viszont Bob növényeit kérdezik, ez lesz az eredmény:

  • Clover, grass, clover, clover

Megvalósítás

A feladatban olyan osztályt kell írnod, amely az óvoda minden gyerekének biztosít egy metódust. Kevesebb ismétléssel (és több szórakozással!) járhat a munkád, ha nem 12 különböző metódust definiálsz kézzel, hanem egy kis metaprogramozást használsz. Ha nem tudod, hol kezdd, fedezd fel a method_missing vagy a define_method metódust.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Ruby Exercism

Készen állsz elkezdeni a(z) Óvodakert feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Ruby nyelvet 21 fogalom121 feladat segítségével, valódi emberi mentorálással, mindez ingyen.