Schreiben Sie ein einzeiliges Programm mit zwei oder mehr Zeichen, das keine Zeilenabschlusszeichen enthält und keine Eingabe benötigt. Zum Beispiel könnte Ihr Programm sein:
MyProgram
Wenn Ihr Programm in die Formen eingeteilt ist, die die Zeiger einer Uhr bei 12, 3, 6 und 9 Uhr machen, muss sie die entsprechende Stundenzahl ausgeben. Andere Zeiten müssen nicht unterstützt werden.
Speziell:
Wenn Ihr Programm wie ein Uhrzeiger um 12 Uhr angeordnet ist (🕛)
m a r g o r P y M
Laufen sollte es ausgeben
12
.Wenn Ihr Programm wie ein Uhrzeiger um 3 Uhr angeordnet ist (🕒)
m a r g o r P y MyProgram
Laufen sollte es ausgeben
3
.Wenn Ihr Programm wie ein Zeiger um 6 Uhr angeordnet ist (🕕)
m a r g o r P y M y P r o g r a m
Laufen sollte es ausgeben
6
.Wenn Ihr Programm wie ein Uhrzeiger um 9 Uhr angeordnet ist (🕘)
........m ........a ........r ........g ........o ........r ........P ........y margorPyM
Laufen sollte es ausgeben
9
.
Anmerkungen
Das erste Zeichen in Ihrem Programm steht immer in der Mitte der Uhr. (Beachten Sie, dass es
M
im 6-Uhr-Beispiel nur einen gibt .)Ein beliebiges Nicht-Newline-Zeichen kann verwendet werden, um das Programm für die 9-Uhr-Anordnung einzurücken. In den Beispielen
.
wird aber Leerzeichen verwendet oder/
oder#
wäre genauso gültig.Bei der 3-Uhr-Anordnung sollten sich keine Zeichen im leeren oberen rechten Bereich befinden. (dh leer lassen, nicht mit Leerzeichen füllen.)
Die anfängliche Programmanordnung (
MyProgram
wie sie ist) muss nichts tun. Nur die Anordnungen für 12, 3, 6 und 9 Uhr müssen eine korrekte, genau definierte Ausgabe haben.Code, der nur als Funktion oder REPL-Befehl funktioniert, ist nicht zulässig. Jedes der vier Arrangements sollte sofort einsatzbereit sein.
Das kürzeste Programm in Bytes gewinnt. zB MyProgram
hat eine Länge von 9 Bytes.
quelle
3
und6
für Brainfuck nicht unterscheidbar wären, da sie sich nur in Leerzeichen unterscheiden.Antworten:
GolfScript,
1110 BytesWird
#
als Füllzeichen verwendet.12 Uhr
Probieren Sie es online!
Wie es funktioniert.
6
wird auf den Stapel geschoben,;
wirft ihn weg.]
Wickelt den Stapel in ein Array ein (wirkt sich nicht auf die Ausgabe aus).9
und3
werden auf den Stapel geschoben;
und;
verwerfen sie.Schließlich
1
und2
werden auf den Stapel geschoben und implizit ohne Trennung gedruckt.3 Uhr
Probieren Sie es online!
Wie es funktioniert
6
wird auf den Stapel geschoben,;
wirft ihn weg.]
Wickelt den Stapel in ein Array ein (wirkt sich nicht auf die Ausgabe aus).9
und3
werden auf den Stapel geschoben;
und;
verwerfen sie.1
und21
auf den Stapel geschoben werden,;;
wirft sie.3
wird auf den Stapel geschoben.#
Beginnt einen Kommentar bis zum Ende der Zeile.6 Uhr
Probieren Sie es online!
Wie es funktioniert
6
wird auf den Stapel geschoben,;
wirft ihn weg.]
Wickelt den Stapel in ein Array ein (wirkt sich nicht auf die Ausgabe aus).9
und3
werden auf den Stapel geschoben;
und;
verwerfen sie.1
,2
Und1
sind auf dem Stapel abgelegt.;
und;
verwerfen Sie die letzten1
und2
.3
und9
werden auf den Stapel geschoben.]
und;
wickeln Sie den Stapel in ein Array und verwerfen Sie es, löschen Sie den Stapel.6
wird auf den Stapel geschoben.9 Uhr
Probieren Sie es online!
Wie es funktioniert
Alle Zeilen bis auf die letzten sind Kommentare.
6
wird auf den Stapel geschoben,;
wirft ihn weg.]
Wickelt den Stapel in ein Array ein (wirkt sich nicht auf die Ausgabe aus).9
wird auf den Stapel geschoben.#
Beginnt einen Kommentar bis zum Ende der Zeile.quelle
> <> , 20 Bytes
Es gibt Unbedruckbares darin, nämlich:
X
ist\x06\t
c
ist\x03
Der gleiche Teil des Quellcodes wird jedes Mal ausgeführt. Dabei werden
g
zwei Teile des Quellcodes verwendet, um zu bestimmen, was von 12 subtrahiert werden soll.12 uhr | 3 uhr | 6 uhr | 9 Uhr (sieht aufgrund der Lasche falsch aus)
quelle
ROOP , 54 Bytes
Wird
<
als Füllzeichen verwendet.12 uhr | 3 uhr | 6 uhr | 9 Uhr
12 Uhr
Die
1
und die2
, die sich in der Nähe der Spitze befinden, fallen für 3 Zyklen. Wenn sie denW
Operator erreichen, gibt der Operator die Nummer einO
, die die Ausgabe darstellt.Die
1
in diesem Teilfiel für 2 Zyklen, der
V
Bediener bewegt es nach unten und aktiviert beim nächsten Zyklus denH
Bediener, der das Programm beendet.3 Uhr
O
sind auch Objekte, die sich bewegen und fallen. Da der Code jetzt eine Zeile mit mehr als einem Zeichen enthält, werden alle anderen Zeilen mit Leerzeichen gefüllt. AlleO
bewegen sich nach rechts und fallen, was dazu führt, dass dieW
Bediener keinen Platz zum Senden des1
und haben2
.Das Einzige
O
, das sich nicht bewegt, ist das, das in der Mitte gefangen ist. Das3
obige fällt für 4 Zyklen anW
.Dann füllen die Zahlen, die fallen, die 4 Felder zwischen
W
und3
. Wenn es gefüllt ist, kann eine andere Nummer über alle gehen und denH
Bediener erreichen, der das Programm beendet.6 Uhr
Sehr ähnlich der 12, die
6
fällt auf dieW
und die1
auf dieH
. Dies geschieht in 2 Zyklen und beendet das Programm, bevor der Fall 12 eintritt.9 Uhr
(Ich zeige eine einzelne Spalte,
<
weil die anderen nichts tun).Der
V
nimmt den9
und bewegt ihn zum darunter liegenden Rohr, das das Objekt nach links ablenkt. Die Pipe<
bewegt das Objekt nach unten und das nächste nach rechts. DerV
Bediener fügt das9
unten stehende Feld ein und sendet es an den Ausgang.Der
1
macht gleiche Bewegungen und erreicht denH
, der das Programm beendet. Da die Pipes Objekte im selben Zyklus bewegen, dauert dies alles einen einzigen Zyklus.quelle