Prévisions météorologiques: Faux trop souvent pour être fiables, trop souvent pour ignorer.
Compte tenu des températures élevées et basses et de l'une des quatre conditions météorologiques par jour, émettez une prévision graphique graphique de cinq jours ASCII. La structure des quatre indicateurs graphiques est présentée ci-dessous.
\ /
-O- Sunny
/ \
\ /
-O(==) Partly Cloudy
(====)
(==) Cloudy
(====)
(==)
(====) Rainy
/////
Le graphique de prévision est le suivant: chaque indicateur graphique est centré dans sa propre case 9x5, avec 5 cases sur le graphique. Chaque case est séparée par des |
caractères. Sous l'indicateur graphique se trouve une abréviation de trois lettres pour le jour de la semaine ( MON, TUE, WED, THU, FRI, SAT, SUN
) centrée dans sa propre case 9x1. Les températures sont inférieures au jour de la semaine, centrées dans leur propre boîte 9x2. Un exemple est illustré ci-dessous.
---------------------------------------------------
| | | | | |
| (==) | (==) | \ / | \ / | \ / |
| (====) | (====) | -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 |
---------------------------------------------------
Notez que "centré" peut être pris de manière lâche - voyez dans l'exemple comment l'alignement graphique et l'alignement horizontal de la température sont quelque peu flexibles.
De plus, comme je viens des États-Unis et que j'utilise donc Fahrenheit, vous pouvez supposer en toute sécurité que les températures sont toutes à deux chiffres, donc 9 < t < 100
.
E / S et règles
Les exemples d'E / S ici illustrent l'exemple de graphique ci-dessus.
L'entrée peut être prise dans n'importe quel format raisonnable et par n'importe quelle méthode pratique . Par exemple,
1) vous pouvez utiliser des nombres pour les jours de la semaine, les températures élevées et basses et les quatre conditions, et prendre la saisie comme cinq tuples, comme[0, 75, 57, 2], [1, 69, 53, 3], ...
2) vous pouvez prendre la saisie comme cinq tuples en utilisant des mots, comme['MON', 75, 57, 'CLOUDY'], ['TUE', 69, 53, 'RAINY'] ...
3) vous pouvez prendre la saisie comme le premier jour seulement, et une liste de températures élevées, une liste de températures basses et une liste de conditions, comme1, [75, 69, ...], [57, 53, ...], [2, 3, ...]
4) etc.Les sauts de ligne de début / fin ou d'autres espaces sont facultatifs, à condition que les caractères s'alignent correctement.
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- La sortie peut être vers la console, retournée sous forme de liste de chaînes, retournée sous forme de chaîne unique, etc.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) gagne.
Réponses:
Emojicode ,
1202974 octetsPrend l'entrée comme une liste de listes d'entiers au format
condition day high low
où condition est un entier compris entre 0 et 4. Essayez-le en ligne!la source
JavaScript (ES8),
304263222 octetsPrend l'entrée comme un tableau de 5
[w,d,h,l]
entrées, où d est le jour sous forme de chaîne et w , h , l sont des entiers représentant respectivement la météo (indexée 0, avec 0 = ensoleillé), la température élevée et la température basse. Renvoie un tableau de chaînes.Démo
Afficher l'extrait de code
Comment?
Nous définissons:
L = ',0,04,05,06,0,,01,,0H 2,0L 3,'.split(',')
Un tableau de chaînes décrivant chaque ligne de la carte, dans lequel:
"| "
W = ' (==),(====),/////,\\ /,-O(==), \\ /, -O-, / \\,'.split(',')
Un tableau de chaînes décrivant les modèles des indicateurs graphiques.
P = '765143810210'
Une chaîne décrivant les indices des motifs en W pour chaque indicateur graphique, regroupés par 3 et stockés dans l'ordre inverse.
La fonction principale se lit désormais comme suit:
la source
Charbon de bois ,
11094 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Edit: 16 octets enregistrés en évitant de répéter le cloud. Explication:
Imprimez la colonne de gauche de l'
|
art.Boucle sur les 5 jours.
Saisissez les conditions météorologiques, numérotées de 0 à 3 en utilisant le même ordre que la question.
Si les conditions météorologiques ne sont pas ensoleillées:
Si les conditions météorologiques sont partiellement nuageuses, imprimez un soleil partiel.
Imprimez un nuage.
Si le temps est pluvieux, imprimez-le.
Sinon, imprimez le soleil.
Lisez et imprimez la journée.
Faites une boucle et saisissez et imprimez les températures.
Imprimez la colonne suivante de l'
|
art.Boucle sur les personnages
6
,2
,3
et1
.Imprimez une rangée de
-
s.Convertissez le caractère en entier et préparez-vous à imprimer la ligne suivante.
la source
Python 3,
636610534464379 octetsFormat d'entrée: - La première liste prend les conditions météorologiques jour par jour -
0 - Ensoleillé
1 - Partiellement nuageux
2 - Nuageux
3 - Pluvieux.
Les deuxième et troisième listes prennent respectivement les températures les plus élevées et les plus basses (sous forme de chaînes). Ne faites rien avec la quatrième liste - c'est principalement pour stocker les jours de la semaine.
Essayez-le en ligne
Remarque: - Un merci très spécial à Mr.XCoder, ovs et pizzapants184 pour avoir aidé à réduire beaucoup d'octets.
la source
Nettoyer , 328 octets
Essayez-le en ligne!
En tant que fonction partielle littérale, prise
[[Int]]
et retourString
.la source