Vor ungefähr einem Jahr, am 31. Dezember 2015, hatte ich die Idee, dass:
Doorknob gnädig gesammelte Zeichen aus der PPCG Gemeinschaft und hielt sie für ein Jahr sicher.
Es nahmen sage und schreibe 74 Personen teil, sodass wir 74 druckbare ASCII- Zeichen zum Spielen haben!
Hier sind die 74 Zeichen der Zeitkapsel-Zeichenfolge für 2016 in der Reihenfolge, in der sie übermittelt wurden:
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
Hier sind die 74 Zeichen der Zeitkapsel-Zeichenfolge 2016 in ASCII-Reihenfolge (Leerzeichen am Anfang beachten):
!!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~
Es ist nicht viel zu tun, aber hier mögen wir eine Herausforderung.
Die Herausforderung
Um zu bestimmen, welche Sprache mit der Zeitkapsel-Zeichenfolge "am besten" ist, haben wir 6 (für 201 6 ) Herausforderungen mit zunehmendem Schwierigkeitsgrad, bei denen Sie jeweils eine Teilmenge der 74 Zeitkapsel-Zeichen verwenden müssen.
Mit 6 unterschiedlichen Herausforderungen können mehr Sprachen konkurrieren, aber nur die besten Sprachen können alle beantworten und punkten.
Wertung:
- Jede Herausforderung wird von 0 bis 74 bewertet, je nachdem, wie viele Charaktere verwendet werden.
- Höhere Werte sind besser.
- Wenn Ihre Sprache eine Herausforderung nicht bestehen kann, ist Ihre Punktzahl für diese Herausforderung 0.
- Jede nicht leere Teilmenge der Herausforderungen kann abgeschlossen werden.
- Ihre Endpunktzahl ist die Summe der Punkte aus allen 6 Herausforderungen.
- Das bestmögliche Endergebnis ist 6 × 74 oder 444 .
Die Herausforderungen
1. Führen Sie aus
Wenn der Code einer Sprache überhaupt nicht ausgeführt werden kann, kann er überhaupt nichts tun.
Schreiben Sie das längste vollständige Programm, das möglich ist (verwenden Sie dazu nur die 74 Zeichen in der Zeitkapsel), das ohne Fehler bei der Kompilierung oder zur Laufzeit ausgeführt wird.
Es ist egal, was das Programm macht, es ist egal, ob es Input / Output hat oder in eine Endlosschleife eintritt, es ist nur wichtig, dass es fehlerfrei läuft. (Warnungen sind in Ordnung, ebenso wie Fehler, die durch falsche Benutzereingaben verursacht wurden.)
Kommentare sind erlaubt, dies könnte also so einfach sein wie
#H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
in Python für eine Punktzahl von 74.
(Haben Sie keine Angst zu antworten, wenn dies die einzige Herausforderung ist, die Ihre Sprache bewältigen kann, aber erwarten Sie auch nicht viele Stimmen.)
Punktzahl = Programmlänge (längeres Programm ist besser)
2. I / O
Eine Sprache ohne Eingabe oder Ausgabe ist fast so nutzlos wie eine Sprache, die nicht ausgeführt werden kann.
Geben Sie bei einem druckbaren ASCII- Zeichen von !
(0x33) bis (0x7D) }
das druckbare ASCII-Zeichen davor und danach aus.
Die Ausgabe kann eine Zeichenfolge oder Liste der Länge zwei oder die durch ein Leerzeichen oder eine neue Zeile getrennten Zeichen sein.
Wenn es sich bei der Eingabe beispielsweise um }
die Ausgabe handelt, kann dies |~
oder ["|", "~"]
oder | ~
oder sein |\n~
.
Ebenso "
ist die Ausgabe für !
und AC
ist die Ausgabe für B
.
Punktzahl = 74 - Programmlänge (kürzeres Programm ist besser)
3. Verzweigungsfähigkeit
Bedingungen sind oft eine Voraussetzung für die Vollständigkeit des Turing , was oft eine Voraussetzung dafür ist, dass eine Sprache nützlich ist.
Wenn eine positive Ganzzahl mit den Dezimalstellen endet, 16
ändern Sie die Zahl 6
in a 7
und geben Sie das Ergebnis aus. Andernfalls geben Sie die Eingabe unverändert aus. Bei Bedarf können Sie Zeichenfolgen für die Eingabe / Ausgabe verwenden.
Beispiele:
2016 -> 2017
16 -> 17
116 -> 117
1616 -> 1617
6 -> 6
15 -> 15
17 -> 17
106 -> 106
2106 -> 2106
Punktzahl = 74 - Programmlänge (kürzeres Programm ist besser)
4. Endlos wiederholbar
Eine Sprache, die keine Schleifen ausführt, erzeugt sich wiederholenden Code, so dass Sie eine Weile eine Programmierpause einlegen müssen.
Geben Sie bei einer positiven Ganzzahl ein ASCII-Kunstquadrat mit dieser Seitenlänge aus, das mit einem Muster aus konzentrischen kleineren Quadraten gefüllt ist, die sich zwischen zwei verschiedenen druckbaren ASCII- Zeichen abwechseln . Sie müssen nicht die gleichen zwei Zeichen für verschiedene Eingaben sein.
Zum Beispiel:
1 <- input
X <- output
2
XX
XX
3
XXX
X-X
XXX
4
XXXX
X--X
X--X
XXXX
5
YYYYY
Y...Y
Y.Y.Y
Y...Y
YYYYY
6
XXXXXX
X----X
X-XX-X
X-XX-X
X----X
XXXXXX
7
ZZZZZZZ
Z-----Z
Z-ZZZ-Z
Z-Z-Z-Z
Z-ZZZ-Z
Z-----Z
ZZZZZZZ
Punktzahl = 74 - Programmlänge (kürzeres Programm ist besser)
5. Math
Eine Sprache, die nicht gut mit Zahlen und Mathematik umgehen kann, ist möglicherweise auch für die Hauptfächer der Geisteswissenschaften geeignet.
Nehmen Sie keine Eingabe, sondern geben Sie die 72 positiven und negativen Ganzzahlteiler von 2016 in beliebiger Reihenfolge aus. Die Ausgabe kann in angemessener Weise als Zeichenfolge oder Liste formatiert werden.
Beispiel:
-1, -2, -3, -4, -6, -7, -8, -9, -12, -14, -16, -18, -21, -24, -28, -32, -36, -42, -48, -56, -63, -72, -84, -96, -112, -126, -144, -168, -224, -252, -288, -336, -504, -672, -1008, -2016, 1, 2, 3, 4, 6, 7, 8, 9, 12, 14, 16, 18, 21, 24, 28, 32, 36, 42, 48, 56, 63, 72, 84, 96, 112, 126, 144, 168, 224, 252, 288, 336, 504, 672, 1008, 2016
Punktzahl = 74 - Programmlänge (kürzeres Programm ist besser)
6. Esoterik
(Nein, nicht das .) Wir bei PPCG mögen unser esoterisches Zeug , und Quines sind ein gutes Beispiel dafür.
Schreiben Sie die längste Quine, die Sie können, nach den üblichen Quine-Regeln . Ein Quine ist ein Programm, das keine Ein- und Ausgaben selbst vornimmt.
Punktzahl = Programmlänge (längeres Programm ist besser)
Spezifische Regeln
- In jeder der 6 Herausforderungen muss Ihr Programm eine Teilmenge der 74 Zeitkapsel-Zeichen sein, die nach Belieben neu angeordnet wurden. Es kann sich um eine leere Untermenge oder eine falsche Untermenge handeln , sodass jedes Ihrer Programme nur 0 und bis zu 74 Zeichen enthalten kann.
- Eine einzelne nachgestellte Zeile am Ende der Eingabe / Ausgabe / des Codes ist überall in Ordnung, da dies für einige Sprachen erforderlich ist oder nicht einfach vermieden werden kann.
- Sofern nicht anders angegeben, kann jede Herausforderung nach unseren Vorgaben als Funktion oder als vollständiges Programm abgeschlossen werden .
- Alle Herausforderungen müssen in derselben Sprache abgeschlossen werden.
- Sie müssen eine Sprache (oder Version einer Sprache) verwenden gemacht , bevor es war 2017 überall auf der Erde .
- Jeder kann gerne antworten, ob Sie der Zeitkapsel einen Charakter hinzugefügt haben oder nicht.
Fühlen Sie sich frei, die Zeitkapsel-Charaktere 2016 in Ihren eigenen Herausforderungen zu verwenden.
6×74 or 444
ist das nicht möglich, da das leere programme bedeuten würde, die sich irgendwie anders verhalten. Daher ist 442 das tatsächliche Minimum, was bedeutet, dass zwei der drei Programme, die Eingaben aufnehmen, einen Buchstaben enthalten