Hagamos un reloj y calendario de arte ASCII que nos indique el mes actual, el día del mes, el día de la semana, la hora, los minutos y si es de noche o de día (pero no el año o el segundo).
En cualquier momento en particular, el calendario se verá así: (se ve mejor con menos espacio entre líneas)
________________________________________________________________
|\ ____________________________________________________________ /|
| | ___ | |
| | _( ) | |
| | (___)__) -.- | |
| | | |
| | | |
| | -.- | |
| | -.- | |
| | ___ | |
| | _( ) | |
| | (___)__) | |
| | | |
| | ___ | |
| | _( ) | |
| | _ (___)__) | |
| | /|\ | |
| | / | \ | |
| | /__|__\ | |
| |____|____ | |
| |\_______/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~| |
| |____________________________________________________________| |
|/______________________________________________________________\|
Siempre es un "cuadro" de 66 por 23 caracteres cuyo borde nunca cambia.
La imagen dentro del marco nos dice la hora y la fecha:
- Durante el día (6:00 am - 5:59 pm) el mes está determinado por la cantidad de pájaros (
-.-
) en el cielo. Enero = 1 pájaro, febrero = 2 pájaros, etc. - Durante la noche (6:00 pm - 5:59 am) los pájaros son reemplazados por 3 veces más estrellas (
*
). Enero = 3 estrellas, febrero = 6 estrellas, etc. Las aves y las estrellas nunca están en el cielo al mismo tiempo. - El día del mes está determinado por la cantidad de caracteres entre los dos guiones (
-
) en el agua. Por ejemplo,~~-~~~~-~~
significa que es el cuarto día del mes. Dependiendo del minuto, el bote puede necesitar estar entre los guiones (los guiones no giran). - El día de la semana está determinado por la cantidad de nubes en el cielo (todas las nubes se ven iguales). Domingo = 0 nubes , lunes = 1 nube, ..., sábado = 6 nubes.
- La hora está determinada por el nivel de agua (y el bote). En su punto más bajo (como arriba) es la 1 en punto, durante las 2 en punto es un carácter más alto, y así hasta las 12 en punto, luego vuelve a la 1 en punto. (Es un reloj de 12 no 24 horas).
- El minuto está determinado por la posición horizontal del bote. Al final de la hora, el bote toca el borde izquierdo del marco (como arriba). En cada minuto posterior el bote se mueve a la derecha por un personaje. En los minutos 51 a 59 se repite desde el lado derecho del marco hacia la izquierda.
Entonces, dado que el ejemplo anterior tiene 3 pájaros, 3 nubes, 2 caracteres entre guiones, el agua en el nivel más bajo y el bote en el extremo izquierdo, podemos decir que la fecha es el miércoles 2 de marzo y la hora es 1: 00pm.
Aquí hay otro ejemplo del domingo 25 de abril a las 3:58 am:
________________________________________________________________
|\ ____________________________________________________________ /|
| | | |
| | * * | |
| | * * * | |
| | * | |
| | | |
| | * | |
| | * * | |
| | | |
| | * | |
| | | |
| | * | |
| | _ | |
| | /|\ * | |
| |/ | \ | |
| |__|__\ /| |
| |__|____ __| |
| |______/~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~\_| |
| | | |
| | | |
| |____________________________________________________________| |
|/______________________________________________________________\|
Gol
Su objetivo es escribir el programa más corto posible que genere estos "calendarios" de arte ASCII para stdout usando el tiempo cuando se ejecuta el programa.
Cada ejecución del programa debería generar una escena de tiempo. Las actualizaciones no deben ser automáticas (o animadas).
Las nubes, las estrellas y los pájaros deben colocarse al azar en el cielo (por lo que es probable que cada carrera, incluso al mismo tiempo, sea diferente). Nunca deben superponerse al bote ni al otro. (Además, los guiones de agua no deben superponerse al casco del barco).
Tenga en cuenta que nada de lo que he descrito aparece bajo el agua. Esto es para que lo hagas. Durante una hora predeterminada de cada semana (a elección), se debe dibujar algo interesante bajo el agua. Podría ser un monstruo marino o un barco hundido o cualquier cosa, depende de usted. Durante esa hora, incluso puede alterar el diseño del resto de la escena (permanecer en los límites del marco).
Puntuación
Este es un combo de concurso de popularidad de código-golf.
Tu puntaje es (bytes in program) - 4 * (upvotes - downvotes)
. El puntaje más bajo gana.
Utilice http://mothereff.in/byte-counter como contador de bytes si utiliza caracteres no ASCII.
Notas y actualizaciones
Puede usar boyas en lugar de guiones, ya que, seamos sinceros, son mucho más apropiadas:
| | ~~(_)~~~(_)~~ (3rd of the month)
Los guiones (o boyas) no tienen que ser aleatorios, pero sería bueno si lo fueran.
- Su "hora especial" debe durar 60 minutos desde la parte superior de la hora hasta 1 minuto antes de la próxima hora.
- Durante la hora especial, las cosas que dibujas bajo el agua pueden moverse y alterar la superficie y el cielo cuando tenga sentido (por ejemplo, monstruo marino comiendo el bote, agujero negro formándose en el fondo del mar, etc.)
fuente
Respuestas:
Ruby, en el fin del mundo,
12601070967 bytes¿Alguien recuerda esa película de Piratas del Caribe?
Todavía hay mucho espacio para mejorar la golfitude allí, pero es un comienzo.
¿Qué pasa con la referencia de la película? Aparentemente, Green Flash ocurre mucho más a menudo de lo que Jack Sparrow quiere que creamos. De hecho, ocurre aproximadamente una vez a la semana en lugar de una vez cada diez años. Todos los domingos al atardecer, el Rubí Negro (hrhr) hace una ronda en la tierra de los muertos:
fuente
Java - Cute Kraken (muchos bytes)
EDITAR: Otras mejoras en las aves / estrellas traen la cima y las nubes, ahora el calendario más ocupado (12pm, sábado, diciembre) funciona aproximadamente el 70% del tiempo. Otro 30% obtengo un error de desbordamiento de pila (me preparo para esto) porque uso la recursividad. Nuevas fotos del calendario más ocupado posible y una nueva foto de Kraken, que muestra los bajos / altos de las estrellas / nubes.
Ahora maneja mejor las situaciones en las que la dispersión aleatoria de estrellas / pájaros impide la inserción aleatoria de nubes. Cuando las cosas están demasiado llenas y no funciona después de 200 intentos, rehacemos las estrellas / pájaros con la esperanza de que la próxima configuración permita a las nubes un espacio personal.
¿Quién es un lindo brujo kwaken? ¿Quién es un lindo brujo kwaken? ¡Usted está! ¡Usted está!
Ediciones menores, todavía no hay golf. Kwaken aparece el 9 porque sabe que todos lo esperan a medianoche. Ahora es pequeño y tímido, pero un día espera comerse el barco.
Las nubes tienden a estar bajas en el cielo, mientras que a las estrellas y pájaros les gusta volar sobre ellas; Sin embargo, las cosas tienden a llenarse un poco alrededor de las 8 en punto.
Salida casual
salida súper ocupada
Si vamos a introducir nuestro kraken codificando algunos valores, obtenemos ...
fuente
Python3 - Piratas y medusas:
15801472 bytesTodos los miércoles a la medianoche un barco pirata hunde nuestro bote. El ruido despierta a una medusa gigante que deambula aleatoriamente por el marco durante una hora.
Ejemplo el martes 19 de agosto 23:27
Los miércoles alrededor de la medianoche:
fuente
Cobra - 994
Sin Bouys: 994
Con Bouys: 1084
A la 1 de la madrugada todos los domingos, la extensión interminable del mar de tilde cobra vida con un deslumbrante brillo azul. La esperanza vuelve a la gente del desolado mundo de las conchas.
fuente
C #
11241128bytesUna vez a la semana, un submarino ASCII de mala calidad debería aparecer durante una hora por debajo de la línea de flotación, y aumentar mi conteo de bytes notablemente con la esperanza de que este código realmente funcione ahora . Me da miedo pensar qué pasa los sábados a las 11:00 de diciembre ...
Código formateado (que se vuelve a dibujar cada 15 segundos porque leí mal la especificación):
Ejemplo de salida (debería leer 3:31, miércoles 13 de agosto):
fuente
Lua: más que estrellas
¡He terminado!
Bueno, no hecho, hecho. Ya terminé con este código y desafío. No es golf, le falta el indicador del mes. No hay forma de evitarlo ... Solo lo estoy publicando para que, en caso de que nadie complete este desafío, al menos hayas visto algo, se te haya ocurrido una idea.
Puedes echarle un vistazo aquí.
fuente