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