Курс языка программирования Raku / Основы / Больше о типах / Позиционные типы данных / Exercises / Светофор

Решение: Светофор

Идея решения заключается в «зацикливании индексации» массива с четырьмя состояниями светофора:

my @lights = <yellow red yellow green>;

В первые секунды количество секунд с начала можно напрямую использовать в качестве индекса в массиве. Когда оно превышает 3, можно зациклить его к началу массива с помощью оператора модуля %. Длина массива — это @lights.elems, но когда он используется как операнд %, нет необходимости вызывать метод elems, так как имя массива будет преобразовано в число, и это преобразование предназначено для возврата количества элементов.

Код

Вот решение:

my @lights = <yellow red yellow green>;

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

🦋 Найдите программу в файле traffic-lights.raku.

Вывод

Запустите программу. Дополнительно попробуйте другие значения в программе.

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

Навигация по курсу

Светофор   |   Количество аргументов командной строки