Pełny cykl to 5 minut. Światło żółte 3, 8, 13, 18... Podpowiedź
3 mod 5 = 3;
8 mod 5 = 3;
13 mod 5 = 3;
Podobnie dla światła czerwonego; 4, 9, 14, 19...
4 mod 5 = 4;
9 mod 5 = 4;
14 mod 5 = 4;
Światło zielone 0 - 2, 5 - 7, 10 - 12 , 15 - 17... Zastanówcie się jakie wartości otrzymamy po zastosowaniu operacji modulo dla światła zielonego. Liczymy analogicznie jak wyżej. Wyżej mamy wartości całkowite, a co jeżeli użytkownik wpisze 2.5? W instrukcji if możemy użyć znaków "<" oraz ">". Drugi wariant: Światła zmieniają się o równych minutach. Jeżeli więc upłynęło t = 2.5 min to w czasie t = 2.0 mieliśmy to samo światło. Możemy więc zaokrąglić liczbę w dół i najlepiej zamienić na int. Do zaokrąglania w dół służy funkcja Match.floor(). Przykład: t = 14.5 po zaokrągleniu t = 14. 14 mod 5 = 4 - światło czerwone. Doszedłem do tego rysując sobie na kartce oś i oznaczając co kratkę jedną minutę, a następnie zacząłem kombinować z operatorem "%". Do rozwiązania napisałem 8 linii kodu. Myśleć myśleć i jeszcze raz myśleć. Powodzenia.