Raku kurss / Pamati / Vairāk par tipiem / Pozicionālie datu tipi / Exercises / Satiksmes luksofori

Risinājums: Satiksmes luksofori

Risinājuma ideja ir “cikliski indeksēt” masīvu ar četriem luksofora stāvokļiem:

my @lights = <yellow red yellow green>;

Pirmajās sekundēs sekunžu skaitu kopš sākuma var tieši izmantot kā indeksu masīvā. Kad tas pārsniedz 3, jūs varat to cikliski atgriezt masīva sākumā ar modulo operatoru %. Masīva garums ir @lights.elems, bet, kad to izmanto kā % operandu, nav nepieciešams izsaukt elems metodi, jo masīva nosaukums tiks konvertēts uz skaitli, un šī konversija ir paredzēta, lai atgrieztu elementu skaitu.

Kods

Šeit ir risinājums:

my @lights = <yellow red yellow green>;

say @lights[51 % @lights];
say @lights[102 % @lights];
say @lights[305 % @lights];

🦋 Atrodiet programmu failā traffic-lights.raku.

Izvade

Palaidiet programmu. Papildus, izmēģiniet citus vērtības programmā.

$ raku exercises/positionals/traffic-lights.raku
green
yellow
red

Kursa navigācija

Satiksmes luksofori   |   Komandrindas argumentu skaits