Lassen Sie uns eine ASCII-Kunstuhr und einen Kalender erstellen, die uns den aktuellen Monat, den Tag des Monats, den Wochentag, die Stunde, die Minute und ob es sich um Nacht oder Tag handelt (aber nicht um das Jahr oder die Sekunde).
Zu einem bestimmten Zeitpunkt sieht der Kalender ungefähr so aus: (Er sieht besser aus, wenn der Zeilenabstand geringer ist.)
________________________________________________________________
|\ ____________________________________________________________ /|
| | ___ | |
| | _( ) | |
| | (___)__) -.- | |
| | | |
| | | |
| | -.- | |
| | -.- | |
| | ___ | |
| | _( ) | |
| | (___)__) | |
| | | |
| | ___ | |
| | _( ) | |
| | _ (___)__) | |
| | /|\ | |
| | / | \ | |
| | /__|__\ | |
| |____|____ | |
| |\_______/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~| |
| |____________________________________________________________| |
|/______________________________________________________________\|
Es ist immer ein "Bilderrahmen" mit 66 mal 23 Zeichen, dessen Rahmen sich nie ändert.
Das Bild innerhalb des Rahmens gibt die Uhrzeit und das Datum an:
- Während des Tages (6:00 - 17:59 Uhr) wird der Monat durch die Anzahl der Vögel (
-.-
) am Himmel bestimmt. Januar = 1 Vogel, Februar = 2 Vögel usw. - In der Nacht (18.00 - 05.59 Uhr) werden die Vögel durch dreimal so viele Sterne ersetzt (
*
). Januar = 3 Sterne, Februar = 6 Sterne usw. Vögel und Sterne sind niemals gleichzeitig am Himmel. - Der Tag des Monats wird durch die Anzahl der Zeichen zwischen den beiden Strichen (
-
) auf dem Wasser bestimmt.~~-~~~~-~~
bedeutet zB, dass es der vierte Tag des Monats ist. Je nach Minute muss sich das Boot möglicherweise zwischen den Strichen befinden (die Striche drehen sich nicht). - Der Wochentag wird durch die Anzahl der Wolken am Himmel bestimmt (alle Wolken sehen gleich aus). Sonntag = 0 Wolken , Montag = 1 Wolke, ..., Samstag = 6 Wolken.
- Die Stunde wird durch den Wasserstand (und das Boot) bestimmt. Am niedrigsten (wie oben) ist es 1 Uhr, während 2 Uhr ist es ein Zeichen höher und so weiter bis 12 Uhr, dann zurück bis 1 Uhr. (Es ist eine 12 nicht eine 24-Stunden-Uhr.)
- Die Minute wird durch die horizontale Position des Bootes bestimmt. Zu Beginn der Stunde berührt das Boot den linken Rand des Rahmens (wie oben). In jeder weiteren Minute bewegt sich das Boot um einen Charakter nach rechts. In den Minuten 51 bis 59 geht es von der rechten Seite des Rahmens zurück nach links.
Wenn also das obige Beispiel 3 Vögel, 3 Wolken, 2 Buchstaben zwischen den Strichen, das Wasser auf der niedrigsten Ebene und das Boot ganz links hat, können wir sagen, dass das Datum Mittwoch, der 2. März, und die Zeit 1 ist: 00pm.
Hier ist ein weiteres Beispiel vom Sonntag, den 25. April, um 3:58 Uhr:
________________________________________________________________
|\ ____________________________________________________________ /|
| | | |
| | * * | |
| | * * * | |
| | * | |
| | | |
| | * | |
| | * * | |
| | | |
| | * | |
| | | |
| | * | |
| | _ | |
| | /|\ * | |
| |/ | \ | |
| |__|__\ /| |
| |__|____ __| |
| |______/~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~\_| |
| | | |
| | | |
| |____________________________________________________________| |
|/______________________________________________________________\|
Tor
Ihr Ziel ist es, das kürzestmögliche Programm zu schreiben, das diese ASCII-Kunst- "Kalender" unter Verwendung der Zeit, in der das Programm ausgeführt wird, auf stdout ausgibt.
Jeder Programmlauf sollte eine Zeitszene ausgeben. Updates sollten nicht automatisch (oder animiert) sein.
Die Wolken, Sterne und Vögel sollten willkürlich am Himmel platziert werden (daher ist es wahrscheinlich, dass jeder Lauf, auch wenn er zur selben Zeit stattfindet, unterschiedlich ist). Sie sollten niemals das Boot oder einander überlappen. (Auch die Wasserstriche sollten den Bootsrumpf nicht überlappen.)
Beachten Sie, dass nichts, was ich beschrieben habe, unter Wasser erscheint. Dies ist für Sie zu tun. Während einer vorbestimmten Stunde jeder Woche (Ihrer Wahl) sollte etwas Interessantes unter Wasser gezeichnet werden. Es könnte ein Seeungeheuer oder ein versunkenes Schiff sein oder so, es liegt an dir. Während dieser Stunde können Sie sogar das Design des Restes der Szene ändern (innerhalb der Rahmengrenzen bleiben).
Wertung
Dies ist eine Kombination aus Code-Golf-Beliebtheitswettbewerb.
Ihre Punktzahl ist (bytes in program) - 4 * (upvotes - downvotes)
. Die niedrigste Punktzahl gewinnt.
Verwenden Sie http://mothereff.in/byte-counter als Bytezähler, wenn Sie Nicht-ASCII-Zeichen verwenden.
Notizen und Updates
Sie können Bojen anstelle von Bindestrichen verwenden, da diese wesentlich geeigneter sind:
| | ~~(_)~~~(_)~~ (3rd of the month)
Die Striche (oder Bojen) müssen nicht zufällig sein, aber es wäre schön, wenn sie es wären.
- Ihre "Sonderstunde" sollte 60 Minuten von der vollen Stunde bis 1 Minute vor der nächsten Stunde dauern.
- Während der besonderen Stunde können sich die Dinge, die Sie unter Wasser zeichnen, bewegen und die Oberfläche und den Himmel verändern, wenn es sinnvoll ist (z. B. Seeungeheuer, das das Boot frisst, sich bildendes Schwarzes Loch am Meeresboden usw.).