Prognozy pogody: zbyt często błędne, na których można polegać, zbyt często, aby je ignorować.
Biorąc pod uwagę wysoką i niską temperaturę oraz jeden z czterech warunków pogodowych dziennie, przygotuj graficzną pięciodniową prognozę pogody ASCII. Strukturę czterech wskaźników graficznych pokazano poniżej.
\ /
-O- Sunny
/ \
\ /
-O(==) Partly Cloudy
(====)
(==) Cloudy
(====)
(==)
(====) Rainy
/////
Tabela prognoz jest następująca: każdy wskaźnik graficzny jest wyśrodkowany w swoim własnym polu 9x5, z 5 polami na wykresie. Każde pole jest oddzielone |
znakami. Pod wskaźnikiem graficznym znajduje się trzyliterowy skrót oznaczający dzień tygodnia ( MON, TUE, WED, THU, FRI, SAT, SUN
), wyśrodkowany we własnym polu 9x1. Temperatury są poniżej dnia tygodnia wyśrodkowane w ich własnym pudełku 9x2. Przykład jest pokazany poniżej.
---------------------------------------------------
| | | | | |
| (==) | (==) | \ / | \ / | \ / |
| (====) | (====) | -O(==) | -O- | -O- |
| | ///// | (====) | / \ | / \ |
| | | | | |
---------------------------------------------------
| MON | TUE | WED | THU | FRI |
---------------------------------------------------
| H 75 | H 69 | H 77 | H 80 | H 85 |
| L 57 | L 53 | L 61 | L 63 | L 66 |
---------------------------------------------------
Zauważ, że „wyśrodkowany” można przyjmować luźno - patrz przykład, w jaki sposób wyrównanie graficzne i wyrównanie temperatury w poziomie są nieco elastyczne.
Ponadto, ponieważ jestem z USA i dlatego używam Fahrenheita, możesz bezpiecznie założyć, że wszystkie temperatury są dwucyfrowe, więc 9 < t < 100
.
I / O i reguły
Przykłady we / wy są ilustracją powyższej przykładowej tabeli.
Dane wejściowe można przyjmować w dowolnym rozsądnym formacie i dowolną dogodną metodą . Na przykład:
1) można użyć liczb dla dni tygodnia, wysokich i niskich temperatur oraz czterech warunków i przyjmować dane jako pięć krotek, np.[0, 75, 57, 2], [1, 69, 53, 3], ...
2) można wprowadzić dane jako pięć krotek przy użyciu słów, takich jak['MON', 75, 57, 'CLOUDY'], ['TUE', 69, 53, 'RAINY'] ...
3) możesz wziąć dane wejściowe już pierwszego dnia oraz listę wysokich temperatur, listę niskich temperatur i listę warunków, takich jak1, [75, 69, ...], [57, 53, ...], [2, 3, ...]
4) itd.Wiodące / końcowe znaki nowej linii lub inne białe znaki są opcjonalne, pod warunkiem, że znaki są odpowiednio ustawione.
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
- Dane wyjściowe mogą być wysyłane do konsoli, zwracane jako lista ciągów, zwracane jako pojedynczy ciąg itp.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
Odpowiedzi:
Emojicode ,
1202974 bajtówPobiera dane wejściowe jako listę liczb całkowitych w formacie,
condition day high low
gdzie warunek jest liczbą całkowitą od 0 do 4. Wypróbuj online!źródło
JavaScript (ES8),
304263222 bajtówPobiera dane wejściowe jako tablicę 5
[w,d,h,l]
wpisów, gdzie d oznacza dzień jako ciąg, a w , h , l są liczbami całkowitymi reprezentującymi pogodę (odpowiednio 0, 0 = słonecznie), odpowiednio wysoką i niską temperaturę. Zwraca tablicę ciągów.Próbny
Pokaż fragment kodu
W jaki sposób?
Definiujemy:
L = ',0,04,05,06,0,,01,,0H 2,0L 3,'.split(',')
Tablica ciągów znaków opisujących każdą linię planszy, w której:
"| "
W = ' (==),(====),/////,\\ /,-O(==), \\ /, -O-, / \\,'.split(',')
Tablica ciągów opisujących wzorce wskaźników graficznych.
P = '765143810210'
Ciąg opisujący wskaźniki wzorców w W dla każdego wskaźnika graficznego, pogrupowany według 3 i zapisany w odwrotnej kolejności.
Główna funkcja brzmi teraz:
źródło
Węgiel drzewny ,
11094 bajtówWypróbuj online! Link jest do pełnej wersji kodu. Edycja: Zapisano 16 bajtów, unikając powtarzania chmury. Wyjaśnienie:
Wydrukuj lewą kolumnę
|
s.Pętla przez 5 dni.
Wprowadź warunki pogodowe, ponumerowane od 0 do 3, stosując tę samą kolejność co pytanie.
Jeśli warunki pogodowe nie są słoneczne:
Jeśli warunki pogodowe są częściowo zachmurzone, wydrukuj częściowe słońce.
Wydrukuj chmurę.
Jeśli jest deszcz, wydrukuj go.
W przeciwnym razie wydrukuj słońce.
Przeczytaj i wydrukuj dzień.
Zapętlić i wprowadzić i wydrukować temperatury.
Wydrukuj następną kolumnę
|
s.Pętla ciągu znaków
6
,2
,3
i1
.Wydrukuj wiersz
-
s.Rzuć znak na liczbę całkowitą i przejdź gotowy do wydrukowania następnego wiersza.
źródło
Python 3,
636610534464379 bajtówFormat wejściowy: - Pierwsza lista uwzględnia warunki pogodowe w ciągu dnia -
0 - Słonecznie
1 - Częściowo pochmurno
2 - Pochmurno
3 - Deszczowo.
Druga i trzecia lista przyjmują odpowiednio najwyższą i najniższą temperaturę (jako ciągi znaków). Nie rób nic z czwartą listą - służy głównie do przechowywania dni tygodnia.
Wypróbuj online
Uwaga: - Specjalne podziękowania dla Mr.XCodera, ovs i pizzapants184 za pomoc w zmniejszeniu dużej ilości bajtów.
źródło
Czysty , 328 bajtów
Wypróbuj online!
Jako funkcja częściowa dosłowna, przyjmowanie
[[Int]]
i powrótString
.źródło