Menu
CoddyTech

Powtórka – sygnalizacja świetlna

Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 41 z 78.

challenge icon

Wyzwanie

Łatwy

Zasymuluj sygnalizację świetlną. Na najwyższym poziomie skryptu zadeklaruj typ wyliczeniowy o nazwie TrafficLight z opcjami RED, YELLOW i GREEN, a następnie napisz trzy funkcje, z których każda używa instrukcji match dla światła:

  • get_driver_action(light) zwraca "Stop" dla czerwonego, "Caution" dla żółtego i "Go" dla zielonego
  • get_wait_time(light) zwraca 30 dla czerwonego, 3 dla żółtego i 25 dla zielonego
  • get_next_light(light) zwraca następne światło: czerwone zmienia się w zielone, zielone w żółte, a żółte w czerwone

Program odczytuje dwa wiersze: nazwę pierwszego światła (RED, YELLOW lub GREEN) oraz liczbę świateł do wyświetlenia (liczbę całkowitą, 1 lub większą). Dla każdego światła wypisz jego nazwę, działanie i czas oczekiwania, a następnie przejdź do następnego światła. Na koniec wypisz sumę wszystkich czasów oczekiwania.

Dla danych wejściowych RED i 4 wynikiem jest:

RED: Stop for 30 seconds
GREEN: Go for 25 seconds
YELLOW: Caution for 3 seconds
RED: Stop for 30 seconds
Total wait: 88 seconds

Spróbuj swoich sił

extends Node

# Zadeklaruj tutaj enum TrafficLight

# Napisz tutaj get_driver_action(), get_wait_time() i get_next_light()

func _ready():
	var first := OS.read_string_from_stdin()
	var count := int(OS.read_string_from_stdin())
	# Wyświetl światła i łączny czas oczekiwania
	pass

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator GDScript online