Wettervorhersage: Falsch zu oft, um sich darauf zu verlassen, richtig zu oft, um es zu ignorieren.
Bei hohen und niedrigen Temperaturen und einer von vier Wetterbedingungen pro Tag eine grafische ASCII-Wettervorhersage für fünf Tage ausgeben. Die Struktur der vier grafischen Anzeigen ist unten dargestellt.
\ /
-O- Sunny
/ \
\ /
-O(==) Partly Cloudy
(====)
(==) Cloudy
(====)
(==)
(====) Rainy
/////
Das Prognosediagramm sieht wie folgt aus: Jeder grafische Indikator wird in einem eigenen 9x5-Feld zentriert, wobei sich 5 Felder über das Diagramm erstrecken. Jedes Kästchen ist durch |
Zeichen getrennt . Unter der grafischen Anzeige befindet sich eine dreistellige Abkürzung für den Wochentag ( MON, TUE, WED, THU, FRI, SAT, SUN
), die in einem eigenen 9x1-Feld zentriert ist. Die Temperaturen liegen unter dem Wochentag, zentriert in ihrer eigenen 9x2 Box. Ein Beispiel ist unten gezeigt.
---------------------------------------------------
| | | | | |
| (==) | (==) | \ / | \ / | \ / |
| (====) | (====) | -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 |
---------------------------------------------------
Beachten Sie, dass "zentriert" locker genommen werden kann - sehen Sie im Beispiel, wie die grafische Ausrichtung und die horizontale Ausrichtung der Temperatur etwas flexibel sind.
Da ich aus den USA komme und daher Fahrenheit verwende, können Sie außerdem davon ausgehen, dass die Temperaturen alle zweistellig sind 9 < t < 100
.
I / O und Regeln
Die E / A-Beispiele hier veranschaulichen die obige Beispieltabelle.
Die Eingabe kann in jedem vernünftigen Format und mit jeder geeigneten Methode erfolgen . Zum Beispiel:
1) Sie könnten Zahlen für die Wochentage, die hohen und niedrigen Temperaturen und die vier Bedingungen verwenden und die Eingabe als fünf Tupel nehmen, wie zum Beispiel[0, 75, 57, 2], [1, 69, 53, 3], ...
2) Sie könnten die Eingabe als fünf Tupel mit Worten nehmen, wie zum Beispiel['MON', 75, 57, 'CLOUDY'], ['TUE', 69, 53, 'RAINY'] ...
3) Sie können Eingaben nur für den ersten Tag und eine Liste mit hohen Temperaturen, eine Liste mit niedrigen Temperaturen und eine Liste mit Bedingungen wie1, [75, 69, ...], [57, 53, ...], [2, 3, ...]
4) usw. verwenden.Führende / nachfolgende Zeilenumbrüche oder andere Leerzeichen sind optional, sofern die Zeichen richtig ausgerichtet sind.
- Es ist entweder ein vollständiges Programm oder eine Funktion zulässig. Bei einer Funktion können Sie die Ausgabe zurückgeben, anstatt sie zu drucken.
- Die Ausgabe kann an die Konsole erfolgen, als Liste von Zeichenfolgen zurückgegeben werden, als einzelne Zeichenfolge zurückgegeben werden usw.
- Standard-Schlupflöcher sind verboten.
- Dies ist Codegolf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Byte) gewinnt.
Antworten:
Emojicode ,
1202974 BytesNimmt Eingaben als eine Liste von Listen mit ganzen Zahlen in dem Format auf,
condition day high low
in dem Bedingung eine ganze Zahl zwischen 0 und 4 ist. Versuchen Sie es online!quelle
JavaScript (ES8),
304263222 ByteWird als Array von 5
[w,d,h,l]
Einträgen eingegeben , wobei d der Tag als Zeichenfolge ist und w , h , l ganze Zahlen sind, die das Wetter (0-indiziert, mit 0 = sonnig), die hohe Temperatur bzw. die niedrige Temperatur darstellen. Gibt ein Array von Zeichenfolgen zurück.Demo
Code-Snippet anzeigen
Wie?
Wir definieren:
L = ',0,04,05,06,0,,01,,0H 2,0L 3,'.split(',')
Ein Array von Zeichenfolgen, die jede Zeile der Tafel beschreiben, in denen:
"| "
W = ' (==),(====),/////,\\ /,-O(==), \\ /, -O-, / \\,'.split(',')
Ein Array von Zeichenfolgen, die die Muster der grafischen Indikatoren beschreiben.
P = '765143810210'
Eine Zeichenfolge, die die Indizes der Muster in W für jeden grafischen Indikator beschreibt, durch 3 gruppiert und in umgekehrter Reihenfolge gespeichert.
Die Hauptfunktion lautet nun:
quelle
Holzkohle ,
110 bis94 BytesProbieren Sie es online! Link ist eine ausführliche Version des Codes. Bearbeiten: 16 Bytes gespart, indem die Cloud nicht wiederholt wird. Erläuterung:
Drucken Sie die linke Spalte von
|
s.Schleife über die 5 Tage.
Geben Sie die Wetterbedingungen mit den Nummern 0 bis 3 in derselben Reihenfolge wie die Frage ein.
Wenn das Wetter nicht sonnig ist:
Wenn das Wetter teilweise bewölkt ist, drucken Sie eine teilweise Sonne.
Drucken Sie eine Wolke.
Wenn es regnet, drucken Sie es aus.
Ansonsten drucken Sie die Sonne.
Lesen und drucken Sie den Tag.
Schleife über und geben Sie die Temperaturen ein und drucken Sie sie aus.
Drucken Sie die nächste Spalte von
|
s.Schleife über die Zeichen
6
,2
,3
und1
.Drucken Sie eine Reihe von
-
s.Wandle das Zeichen in eine Ganzzahl und mache dich bereit, um die nächste Zeile zu drucken.
quelle
Python 3,
636610534464379 BytesEingabeformat: - Die erste Liste zeigt die Wetterbedingungen tageweise an -
0 - Sonnig
1 - Teilweise bewölkt
2 - Bewölkt
3 - Regnerisch.
Zweite und dritte Liste nehmen jeweils die höchste und niedrigste Temperatur (als Zeichenfolge). Tun Sie nichts mit der vierten Liste - hauptsächlich, um die Wochentage zu speichern.
Probieren Sie es online
Hinweis: - Ein ganz besonderer Dank geht an Mr.XCoder, ovs und pizzapants184 für die Reduzierung vieler Bytes.
quelle
Sauber , 328 Bytes
Probieren Sie es online!
Als Teilfunktion buchstäblich nehmen
[[Int]]
und zurückgebenString
.quelle