Powtórka – sygnalizacja świetlna
Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 41 z 78.
Wyzwanie
ŁatwyZasymuluj 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 zielonegoget_wait_time(light)zwraca30dla czerwonego,3dla żółtego i25dla zielonegoget_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 secondsSpró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
1Łańcuchy znaków — zagadnienia zaawansowane
Metody łańcuchów znakówWyszukiwanie w łańcuchach znakówZastępowanie i przycinanieDzielenie i łączeniePodsumowanie — sprawdzanie nazwy użytkownika4Słowniki, część 2
Zagnieżdżone słownikiTablice słownikówŁączenie słownikówKopiowanie słownikówPodsumowanie – licznik częstotliwości7Typy wyliczeniowe
Czym jest typ wyliczeniowy?Definiowanie typu wyliczeniowegoWartości typu wyliczeniowegoTypy wyliczeniowe w matchPowtórka – sygnalizacja świetlna10Zaawansowane funkcje
Zwracanie wielu wartościFunkcje lambda — część 1Funkcje lambda — część 2Powtórka — sortowanie za pomocą lambdaFunkcje rekurencyjne — część 1Funkcje rekurencyjne — część 2Powtórka — sumowanie zagnieżdżonej tablicy13System zarządzania zapasami
Omówienie projektuDodawanie produktu2Zaawansowane podejmowanie decyzji
Dopasowanie ze zmiennymiStrażnicy dopasowaniaWzorce tablicWzorce słownikówSprawdzanie przynależnościPowtórka — parser poleceń5Aplikacja książki kontaktów
Wyświetlanie menuDodawanie kontaktu8Menedżer danych studentów
Przegląd projektuDodaj studenta3Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DTablice postrzępioneTypowe wzorce tablic 2DPodsumowanie — plansza do gry6Zbiory ze słownikami
Czym jest zbiór?Słownik jako zbiórDodawanie i usuwanieSuma i część wspólnaRóżnica zbiorówPowtórka – usuwanie duplikatów9Zaawansowana agregacja danych
Sumowanie wartościZnajdowanie minimum i maksimumSortowanie niestandardowePodsumowanie – Sortownik słownikówPoćwicz samodzielnie: Kompilator GDScript online