Réalisons une horloge et un calendrier art ASCII qui nous indiquent le mois, le jour du mois, le jour de la semaine, l'heure et les minutes actuels, et si c'est la nuit ou le jour (mais pas l'année ou la seconde).
À n'importe quel moment, le calendrier ressemblera à quelque chose comme ça:
________________________________________________________________
|\ ____________________________________________________________ /|
| | ___ | |
| | _( ) | |
| | (___)__) -.- | |
| | | |
| | | |
| | -.- | |
| | -.- | |
| | ___ | |
| | _( ) | |
| | (___)__) | |
| | | |
| | ___ | |
| | _( ) | |
| | _ (___)__) | |
| | /|\ | |
| | / | \ | |
| | /__|__\ | |
| |____|____ | |
| |\_______/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~| |
| |____________________________________________________________| |
|/______________________________________________________________\|
Il s'agit toujours d'un "cadre d'image" de 66 caractères sur 23 dont la bordure ne change jamais.
L'image dans le cadre nous indique l'heure et la date:
- Au cours de la journée (6h à 17h59), le mois est déterminé par le nombre d'oiseaux (
-.-
) dans le ciel. Janvier = 1 oiseau, février = 2 oiseaux, etc. - Au cours de la nuit (18h00 - 05h59), les oiseaux sont remplacés par 3 fois plus d'étoiles (
*
). Janvier = 3 étoiles, février = 6 étoiles, etc. Les oiseaux et les étoiles ne sont jamais dans le ciel en même temps. - Le jour du mois est déterminé par le nombre de caractères entre les deux tirets (
-
) sur l'eau. Par exemple~~-~~~~-~~
signifie que c'est le quatrième jour du mois. Selon la minute, il peut être nécessaire que le bateau se trouve entre les tirets (les tirets ne tournent pas en boucle). - Le jour de la semaine est déterminé par le nombre de nuages dans le ciel (tous les nuages se ressemblent). Dimanche = 0 nuages , lundi = 1 nuage, ..., samedi = 6 nuages.
- L'heure est déterminée par le niveau d'eau (et le bateau). Au plus bas (comme ci-dessus), il est 1 heure, pendant 2 heures, un caractère plus haut, et ainsi de suite jusqu'à 12 heures, puis de nouveau à 1 heure. (C'est un 12 pas une horloge de 24 heures.)
- La minute est déterminée par la position horizontale du bateau. En haut de l'heure, le bateau touche le bord gauche du cadre (comme ci-dessus). A chaque minute, le bateau se déplace d'un personnage à l'autre. En minutes 51 à 59, il effectue une boucle du côté droit du cadre vers la gauche.
Donc, étant donné que l'exemple ci-dessus a 3 oiseaux, 3 nuages, 2 caractères entre les tirets, l'eau au niveau le plus bas et le bateau à l'extrême gauche, nous pouvons dire que la date est le mercredi 2 mars et que l'heure est à 1: 00h
Voici un autre exemple du dimanche 25 avril à 3h58:
________________________________________________________________
|\ ____________________________________________________________ /|
| | | |
| | * * | |
| | * * * | |
| | * | |
| | | |
| | * | |
| | * * | |
| | | |
| | * | |
| | | |
| | * | |
| | _ | |
| | /|\ * | |
| |/ | \ | |
| |__|__\ /| |
| |__|____ __| |
| |______/~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~\_| |
| | | |
| | | |
| |____________________________________________________________| |
|/______________________________________________________________\|
Objectif
Votre objectif est d’écrire le programme le plus court possible qui génère ces "calendriers" art ASCII sur stdout à l’heure de son exécution.
Chaque exécution du programme doit générer une scène temporelle. Les mises à jour ne doivent pas être automatiques (ou animées).
Les nuages, les étoiles et les oiseaux doivent être placés au hasard dans le ciel (chaque course, même la même en même temps, sera probablement différente). Ils ne doivent jamais se chevaucher le bateau ou l'un l'autre. (De plus, les traits d’eau ne doivent pas chevaucher la coque du bateau.)
Notez que rien de ce que j'ai décrit ne paraît sous l'eau. C'est à vous de le faire. Pendant une heure prédéterminée de chaque semaine (votre choix), quelque chose d' intéressant doit être dessiné sous l'eau. Cela peut être un monstre marin ou un navire coulé ou autre chose, à vous de choisir. Pendant cette heure, vous pouvez même modifier le dessin du reste de la scène (en restant dans les limites du cadre).
Notation
Ceci est un combo de code-golf popularité-concours.
Votre score est (bytes in program) - 4 * (upvotes - downvotes)
. Le score le plus bas gagne.
Utilisez http://mothereff.in/byte-counter comme compteur d'octets si vous utilisez des caractères non-ASCII.
Notes et mises à jour
Vous pouvez utiliser des bouées au lieu de tirets, car, avouons-le, elles sont beaucoup plus appropriées:
| | ~~(_)~~~(_)~~ (3rd of the month)
Les tirets (ou bouées) ne doivent pas forcément être aléatoires, mais ce serait bien s'ils l'étaient.
- Votre "heure spéciale" devrait durer 60 minutes, du début de l'heure à 1 minute avant l'heure suivante.
- Au cours de l'heure spéciale, les objets que vous dessinez sous l'eau peuvent bouger et altérer la surface et le ciel lorsque cela vous semble judicieux (par exemple, un monstre marin dévorant le bateau, un trou noir se formant au fond de la mer, etc.).
la source
Réponses:
Ruby, au bout du monde,
12601070967 octetsQuelqu'un se souvient-il de ce film Pirates des Caraïbes?
Il reste encore beaucoup à faire pour améliorer la golfitude, mais c'est un début.
Maintenant, quelle est la référence du film? Apparemment, Green Flash se produit beaucoup plus souvent que Jack Sparrow veut nous faire croire. En fait, cela se produit environ une fois par semaine au lieu de tous les dix ans. Chaque dimanche au coucher du soleil, le Black Ruby (hrhr) fait un tour au pays des morts:
la source
Java - Cute Kraken (Beaucoup d'octets)
EDIT: D'autres améliorations concernant les oiseaux et les étoiles font apparaître le ciel et les nuages, le calendrier le plus chargé à l'heure actuelle (midi, samedi, décembre) fonctionne environ 70% du temps. Autres 30% Je reçois une erreur (je me prépare pour cela) erreur de débordement de pile car j'utilise la récursivité. Nouvelles photos du calendrier le plus chargé possible et nouvelle photo de Kraken montrant les hauts / bas des étoiles / nuages.
Maintenant, gère mieux les situations dans lesquelles la dispersion aléatoire d’étoiles / oiseaux empêche l’insertion aléatoire de nuages. Lorsque les conditions sont trop chargées et que cela ne fonctionne pas après 200 tentatives, nous répétons les étoiles / oiseaux dans l’espoir que la configuration suivante permettra aux nuages de disposer d’un espace personnel.
Qui est un mignon kwaken wittle? Qui est un mignon kwaken wittle? Tu es! Tu es!
Modifications mineures, toujours pas de golf. Kwaken se présente sur les 9 parce qu'il sait que tout le monde l'attend à minuit. Il est petit et timide maintenant, mais un jour il espère manger le bateau.
Les nuages ont tendance à être bas dans le ciel, tandis que les étoiles et les oiseaux aiment voler au-dessus d'eux; les choses ont tendance à être un peu encombrées vers 8 heures cependant.
Sortie occasionnelle
sortie super occupée
Si nous voulons introduire notre kraken en codant certaines valeurs, nous obtenons ...
la source
Python3 - Pirates et méduses:
15801472 octetsChaque mercredi à minuit, un bateau pirate coule notre bateau. Le bruit réveille une méduse géante qui parcourt le cadre au hasard pendant une heure.
Exemple au mardi 19 août à 23h27
Les mercredis vers minuit:
la source
Cobra - 994
Sans Bouys: 994
Avec Bouys: 1084
Tous les dimanches, à 1 heure du matin, l'étendue infinie du tilde mer s'anime d'un éclat bleu éclatant. L'espoir revient aux habitants du monde désolé des coquillages.
la source
C #
11241128bytesUne fois par semaine, un sous-marin de mauvaise qualité ASCII devrait apparaître pendant une heure sous la ligne de flottaison et augmenter considérablement le nombre d'octets, espérons que ce code fonctionnera réellement maintenant . Je crains de penser à ce qui se passe les samedis à 11h00 en décembre ...
Un code quelque peu formaté (qui redessine toutes les 15 secondes car je lis mal la spécification):
Exemple de sortie (devrait indiquer 3:31 le mercredi 13 août):
la source
Lua - plus que des étoiles
J'ai fini!
Eh bien, pas fait. J'en ai fini avec ce code et ce défi. Ce n'est pas joué au golf, il manque l'indicateur de mois. Il n'y a pas moyen d'éviter ... Je ne fais que l'afficher afin que personne ne termine ce défi, au moins vous avez vu quelque chose, vous avez une idée.
Vous pouvez le regarder ici.
la source