Predicción del tiempo: Incorrecto con demasiada frecuencia en el que confiar, demasiado a menudo como para ignorarlo.
Dada una temperatura alta y baja y una de las cuatro condiciones climáticas por día, genera un pronóstico meteorológico gráfico de cinco días para el arte ASCII. La estructura de los cuatro indicadores gráficos se muestra a continuación.
\ /
-O- Sunny
/ \
\ /
-O(==) Partly Cloudy
(====)
(==) Cloudy
(====)
(==)
(====) Rainy
/////
El gráfico de pronóstico es el siguiente: cada indicador gráfico se centra en su propio cuadro de 9x5, con 5 cuadros en el gráfico. Cada cuadro está separado por |
caracteres. Debajo del indicador gráfico hay una abreviatura de tres letras para el día de la semana ( MON, TUE, WED, THU, FRI, SAT, SUN
) centrada en su propio cuadro de 9x1. Las temperaturas están por debajo del día de la semana centradas en su propia caja de 9x2. Un ejemplo se muestra a continuación.
---------------------------------------------------
| | | | | |
| (==) | (==) | \ / | \ / | \ / |
| (====) | (====) | -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 |
---------------------------------------------------
Tenga en cuenta que "centrado" se puede tomar libremente: vea en el ejemplo cómo la alineación gráfica y la alineación horizontal de temperatura son algo flexibles.
Además, como soy de los EE. UU. Y, por lo tanto, uso Fahrenheit, puede suponer con seguridad que las temperaturas son de dos dígitos, por lo tanto 9 < t < 100
.
E / S y reglas
Los ejemplos de E / S aquí son demostrativos del gráfico de ejemplo anterior.
La entrada puede tomarse en cualquier formato razonable y por cualquier método conveniente . Por ejemplo,
1) podría usar números para los días de la semana, las temperaturas altas y bajas, y las cuatro condiciones, y tomar la entrada como cinco tuplas, como[0, 75, 57, 2], [1, 69, 53, 3], ...
2) podría tomar la entrada como cinco tuplas usando palabras, como['MON', 75, 57, 'CLOUDY'], ['TUE', 69, 53, 'RAINY'] ...
3) podría tomar la entrada como el primer día y una lista de altas temperaturas, una lista de bajas temperaturas y una lista de condiciones, como1, [75, 69, ...], [57, 53, ...], [2, 3, ...]
4) etc.Las nuevas líneas iniciales / finales u otros espacios en blanco son opcionales, siempre que los caracteres se alineen adecuadamente.
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- La salida puede ser a la consola, devuelta como una lista de cadenas, devuelta como una sola cadena, etc.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
Respuestas:
Emojicode ,
1202974 bytesToma datos como una lista de listas de enteros en el formato
condition day high low
donde la condición es un entero entre 0 y 4. ¡ Pruébelo en línea!fuente
JavaScript (ES8),
304263222 bytesToma la entrada como una matriz de 5
[w,d,h,l]
entradas, donde d es el día como una cadena yw , h , l son números enteros que representan el clima (índice 0, con 0 = soleado), temperatura alta y temperatura baja respectivamente. Devuelve una matriz de cadenas.Manifestación
Mostrar fragmento de código
¿Cómo?
Definimos:
L = ',0,04,05,06,0,,01,,0H 2,0L 3,'.split(',')
Una serie de cadenas que describen cada línea del tablero, en la que:
"| "
W = ' (==),(====),/////,\\ /,-O(==), \\ /, -O-, / \\,'.split(',')
Una serie de cadenas que describen los patrones de los indicadores gráficos.
P = '765143810210'
Una cadena que describe los índices de los patrones en W para cada indicador gráfico, agrupados por 3 y almacenados en orden inverso.
La función principal ahora se lee como:
fuente
Carbón ,
11094 bytesPruébalo en línea! El enlace es a la versión detallada del código. Editar: guardado 16 bytes evitando repetir la nube. Explicación:
Imprima la columna de la izquierda del
|
s.Recorre los 5 días.
Ingrese la condición climática, numerada del 0 al 3 usando el mismo orden que la pregunta.
Si el clima no es soleado:
Si el clima está parcialmente nublado, imprima un sol parcial.
Imprime una nube.
Si llueve, imprímalo.
De lo contrario imprime el sol.
Lee e imprime el día.
Recorra e ingrese e imprima las temperaturas.
Imprime la siguiente columna del
|
s.Lazo sobre los personajes
6
,2
,3
y1
.Imprime una fila de
-
s.Convierte el personaje en entero y muévete listo para imprimir la siguiente fila.
fuente
Python 3,
636610534464379 bytesFormato de entrada: - La primera lista toma las condiciones climáticas durante el día -
0 - Soleado
1 - Parcialmente nublado
2 - Nublado
3 - Lluvioso.
La segunda y tercera lista toman las temperaturas más altas y más bajas respectivamente (como cadenas). No haga nada con la cuarta lista, es principalmente para almacenar los días de la semana.
Pruébalo en línea
Nota: - Un agradecimiento muy especial a Mr.XCoder, ovs y pizzapants184 por ayudar a reducir muchos bytes.
fuente
Limpio , 328 bytes
Pruébalo en línea!
Como una función parcial literal, tomar
[[Int]]
y devolverString
.fuente