Gibt das erste Zeichen der vorherigen Antworten aus


17

Der akzeptierte Gewinner ist isaacg mit seiner 7-Bit-ASCII-Antwort . Die Herausforderung ist jedoch noch nicht vorbei - diese Prämie wird für die kürzeste Antwort vergeben. Wenn irgendwie , alles , was Sie bekommen die ersten Zeichen aller anderen Antworten nach unten in 10 Bytes, werden Sie die Prämie gewinnen. Dies schließt alle Zeichen aus der GolfScript-Antwort von Runde 2 ein (plus die von dieser Antwort selbst hinzugefügte). Dies ist das EINMALIGE Mal, dass ich Sie außer Betrieb setzen werde. Wenn Sie Einwände dagegen haben, lassen Sie es mich in den Kommentaren wissen.

Ich möchte Randomra würdigen, die mir bei meiner alten Idee geholfen und mir diese neue Idee gegeben hat.

Bisherige Gewinner

  • Runde 1: isaacg mit 7-Bit-ASCII
    Next bytes: 30 (or 10 if you want that sweet, sweet rep)
    Sie wissen, Code-Golf ist wirklich cool. Die Leute stellen sich einer Herausforderung und sie wird langsam kleiner! Aber machen wir das anders. Also, hier ist meine Herausforderung:

  • Der Code gibt das erste Zeichen aller vorherigen Antworten in der Reihenfolge aus, in der sie veröffentlicht wurden (die erste Antwort gibt nichts aus).

  • Der Code beginnt bei 100 Byte und wird jedes Mal um 5 verringert.
  • Wenn zwei Posts die gleiche Antwort haben (dh beide innerhalb weniger Sekunden), muss der neuere den Charakter des alten hinzufügen und um 5 Bytes (sogar um einige Sekunden) verringern.
  • Es kann jede Sprache verwendet werden.
  • Ihr Code darf keine Fehler erzeugen.
  • Ihr Code muss alle für den ersten Schritt erforderlichen Bytes verwenden.
  • Ihr Code muss auf STDOUT gedruckt werden.
  • Nicht druckbare Zeichen sind in Ordnung, aber:
    • Sie können nicht das erste Zeichen sein (für den Zweck dieser Frage)
    • Sie müssen alle wissen lassen, wo sie sind
  • Sie können mehrere Antworten posten, aber:
    • Sie müssen 2 Antworten warten, bevor Sie eine weitere veröffentlichen. (Wenn Sie also die 100 Bytes veröffentlicht haben, müssen Sie bis zu 85 Bytes warten.)
  • Sie können nicht:
    • Verwenden Sie mehr als 10 Bytes an Kommentaren
    • haben Variablen, die für das gesamte Programm ungenutzt bleiben
    • Füllen Sie das Programm mit Leerzeichen
    • Variablennamen länger als 10 Bytes haben (Sie können jedoch mehrere Variablen mit weniger als 10 Bytes haben)
      (die erste Antwort von EMBLEM ist die Ausnahme von diesen Regeln, da sie vor diesen Einschränkungen veröffentlicht wurde.)
  • Keine Standardlücken. Es sei denn, Sie möchten den ganzen Spaß aus der Herausforderung herausholen.
  • Wenn 3 Wochen lang keine Antworten mehr gesendet werden, gewinnt die Antwort mit den wenigsten Bytes. (Bei einem Gleichstand gewinnt derjenige, der die längere Zeichenfolge druckt.)

Beispiel: Die dritte Antwort muss ein 90 Byte langer Code sein, der zwei Zeichen ausgibt (das erste Zeichen des 100-Byte-Codes, dann das erste Zeichen des 95-Byte-Codes). Die erste Antwort gibt nichts aus (keine vorherigen Antworten, von denen Zeichen abgerufen werden können).


"Unnötiges Leerzeichen" ist eine falsche Formulierung. Pythons Leerzeichen zum Beenden von Anweisungen sind nicht erforderlich, da Sie Semikolons verwenden können.
EMBLEM

8
Vielleicht können wir wieder bei 100 Bytes beginnen, aber mit ppuppPq([#fwSmdP[der Startzeichenfolge beginnen und jedes Mal neu starten, wenn die Zeichenfolge länger als die zulässige Anzahl von Bytes ist. Mir fällt dann allerdings kein Gewinnkriterium ein.
Sanchises

1
@Scimonster Glaubst du ehrlich , es gibt einen 4-Bit-Zeichensatz, der alles beinhaltet #(PS[dfmpquw? Hier stoßen wir an die Grenzen der Informationsdichte. Es sei denn, Sie schreiben ein 10-Byte-Programm, das alle vorherigen Antworten verarbeitet. Ich bin mir nicht sicher, ob es sich lohnt, darauf zu warten.
Sanchises

2
@sanchises Wir sagen nicht, dass es eine gibt. Wir geben den Leuten die Chance zu sehen, was sie können. Wenn niemand kann, werden wir es neu starten.
ASCIIThenANSI

6
-1 Warum ist diese Herausforderung nach der 15-Byte-Lösung nicht einfach mit Würde gestorben? Es erscheint unaufrichtig, es zu ändern, nachdem eine gute "gewinnende" Antwort gegeben wurde, damit Sie nach anderen Regeln weiterspielen können.
Geobits

Antworten:


34

7-Bit-ASCII, 15 Byte

Aktualisiert: Mir war nicht klar, dass das Auffüllen am Ende erfolgen sollte.

Richtige Version, am Ende aufgefüllt:

Hexdump (xxd):

0000000: e1c3 af0e 1438 a8b6 8f37 7a7b 7250 b6    .....8...7z{rP.

Ausdrucke (nicht sicher, welches richtig ist):

�ï8��z{rP�

áï8¨¶7z{rP¶

Alte Version, vorne falsch gepolstert:

pá×
T[G½=¹([

Die Sprache / das Format ist hier 7-Bit-ASCII, wobei jede Gruppe von 7 Bits einem ASCII-Zeichen entspricht. Es wird zur Übertragung von SMS-Daten verwendet. Hier befindet sich ein Decoder .

Es gibt keine allgemein anerkannte Regelung darüber, ob Antworten auf Fragen mit fester Ausgabe, die nicht in einer Programmiersprache geschrieben sind, zulässig sind. Weitere Informationen finden Sie in diesem Metapost . (Ich entschuldige mich, ich habe diesen Beitrag früher falsch gelesen.)


2
Herzliche Glückwünsche! Sie sind die einzige Person, die einen String länger komprimiert hat als der Code, in dem er enthalten ist! : D
ASCIIThenANSI

@ASCIIThenANSI Das Komprimieren eines Strings in ein kürzeres Programm ist einfach. Das Python-Programm print('A'*100)druckt eine Zeichenfolge von 100er A. Das Komprimieren einer effektiv zufälligen Zeichenfolge ist nicht einfach.
Calvins Hobbys

6
@ Calvin'sHobbies Das wäre einfacher, wenn wir alle gerade unseren gesamten Code mit dem Buchstaben 'p' begonnen hätten. : D
ASCIIThenANSI

4
-1 Ich hätte es mir früher ansehen sollen ... Dies scheint falsch codiert zu sein. Es sieht so aus, als ob Sie mit ein wenig Auffüllen beginnen, aber nach dem, was ich anhand des Formats feststellen kann (und diese Antwort erweitert bereits die Definition eines Formats, da gepacktes 7-Bit-ASCII eigentlich nirgendwo verwendet wird), sollten die Daten am Ende gepolstert sein, nicht am Anfang. Und selbst mit der Polsterung denke ich, dass der Rest nicht richtig codiert ist.
Runer112

1
Es sollte "áï <SO><DC4>8¨¶7z {rP¶" sein.
LegionMammal978

25

Element, 80 Bytes

programs do many fun things, like print the letters p`, p`, u`, and p` in a row.

Dies ist eine Sprache, die ich vor über drei Jahren erfunden habe. Einen in Perl geschriebenen Dolmetscher finden Sie hier . Der `Bediener druckt das Oberteil auf den Stapel (die Buchstaben). Die andere Interpunktion erledigt Dinge wie Verkettung, aber die Ergebnisse werden nie gedruckt.


1
Sehr schlau, Sir. Sehr klug ...
ASCIIThenANSI

10

Clip , 20 Bytes

[M"ppuppPq([#fwSmdP"

6
Ich denke, du bist der letzte, der steht. Es sei denn, jemand kann ppuppPq([#fwSmdP[15 Bytes komprimieren UND ausgeben.
Sanchises

@sanchises Wenn jemand das tut, würde ich ein Kopfgeld vergeben. Weil es einfach so gut wäre.
ASCIIThenANSI

3
@sanchises Wenn es nur eine esoterische Sprache gäbe, die das Programm mit allen Vorkommen von persetzt durch ausgibt pp. Dann wäre eine Lösung pupPq([#fwSmdP[.
bcsb1001

1
@ bcsb1001 Ja, mir ist kürzlich so etwas eingefallen. eine esoterische Sprache, in der jeder Befehl eine erfolgreiche Herausforderungslösung auf dieser Site darstellt und die Ausgabe dieses Befehls als Eingabe für den nächsten Befehl verwendet. Es wäre fantastisch, wenn jemand irgendetwas darin programmieren könnte.
Sanchises

1
@sanchises Aber würde das gegen eine Standard-Regel verstoßen, wenn man ins Internet geht?
ASCIIThenANSI

5

Common Lisp, 65 Bytes

(print(map 'string #' code-char #(112 112 117 112 #x70 80 #x71)))

Die letzte 112 sollte (irgendwie) in 80 geändert werden.
LegionMammal978

12
Mit dieser Antwort wurde ein Zeitalter der Dunkelheit eingeläutet.
PhiNotPi


4

Python 3, 95 Bytes

pre='public class f{public static void main(String[] a){System.out.print("");}}'
print(pre[0])

4

Haskell, 35 Bytes

main = putStrLn "\&ppuppPq([#fwS\&"

Was macht "\ &"?
Hjulle

4
@Hjulle Nimm zwei Charaktere auf. (Es ist ein Escape-Code für die leere Zeichenfolge.)
User19057

4

Es ist 24 Stunden her seit der Bearbeitung! Lass uns das machen! : D

Java, Runde 2, 100 Bytes

public class Bytes{public static void main(String[] args){System.out.print("ppuppPq([#fwSmdP[p");}}

1
Wie wäre es, diese "Runde 2" zu markieren?
Claudiu

4

Runde 2: Ruby, 75 Bytes

"ppuppPq([#fwSmdP[ppnvos".chars.each do|character|;print character;end#4444

Ich dachte, ich würde es etwas schwieriger machen, indem ich meine Antwort mit einem Zitat beginne! >: D


3

Java, 100 Bytes

public class f{public static void main(String[] a){System.out.print("");}}//createdbyEMBLEMasdfghjkl

3

Mathematica, 75 Bytes

Print[StringJoin[First/@Characters/@{"publ","pre=","usin","p1 =","prog"}]];


3

F # -Skript, 40 Bytes

System.Console.Write "\u0070puppPq([#fw"

Es hat einen eigenen Dateityp ( .fsx), daher bin ich mir ziemlich sicher, dass es als Sprache zählt.


1
Sie haben das W von Grund auf vergessen.
ASCIIThenANSI

Ich denke, das fehlt auch das 'f' in der 50-Byte-Javascript-Antwort.
user19057


3

Runde 2: /// , 65 Bytes

\p/CodeGolfIsAwesome!/puppPq/CodeGolfIsAwesome!([#fwSmdP[ppnvos"R

Dachte, ich würde es ein bisschen mehr mit einem Backslash aufpeppen :)


2

C #, 90 Bytes

using System;namespace IAmAwesome{class Program{static void Main(){Console.Write("pp");}}}

2

Ruby, 70 Bytes

q = ["publ", "pre", "usi", "p1 ", "pro", "Pri"]
q.each{|s| print s[0]}

Sie müssten es neu anordnen ["publ", "pre", "usi", "p1 ", "pro", "Pri"].
LegionMammal978



2

MATLAB, 30 Bytes

disp([112 112 'uppPq([#fwSm'])

Zeigt sehr gut, wie locker MATLAB mit Datentypen umgeht.


2

Mathematica, 25 Bytes

Print["ppuppPq([#fwSmd"];

1
Ich hatte eine neuartige 25-Byte-CJam-Lösung, die die Zeichenfolge nicht einfach codierte. Leider sieht es so aus, als würde es niemals das Licht der Welt erblicken. : - /
Runer112

@Runer112 Du und all deine kleinen Reime / Trotzdem hatte ich diese Antwort ~ 20 Sekunden bevor die 30-Byte-Antwort ertönte.
LegionMammal978

2

Runde 2: Batch, 70 Bytes

REM BATCHS
GOTO B
:C
ECHO ppuppPq([#fwSmdP[ppnvos"
GOTO A
:B
GOTO C
:A

Ihr Zitat war zwecklos. D:>

Bearbeiten: es ist mir gerade eingefallen, dass ich nach Dateigröße anstatt nach Zeichenanzahl gehe, nicht sicher, wie Bytes gezählt werden sollen: P

Bearbeiten 2: Kommentar hinzugefügt, um Bytes zu füllen. Wenn Sie die Anzahl der Bytes auf einem Windows-Computer überprüfen, tun Sie einfach so, als ob "REM BATCHS" nur "REM" wäre. : P


Ich zähle Bytes mit gedit; es heißt, Ihre Antwort ist 63. Keine Sorge; Sie sind nah genug, um die Lücke mit Kommentaren zu füllen.
EMBLEM

1
Ah, okay cool, ich werde nur einen Kommentar hinzufügen.
Bloo

3
@EMBLEM Es liegt daran, dass die Windows-Newline ist \r\n. Es gibt 7 extra \rs da.
Jimmy23013


2

Runde 2, > <> , 45 Bytes

4 Zeichen von Kommentaren.

'c(v\R"sovnpp[PdmSwf#[(qPppupp'01.uwyz
ol?!;

Die Zeichenfolge enthält jetzt beide "und 'daher können> <> Antworten sie auch nicht mehr einfach umschließen (so habe ich Fluchtwege vermieden).


2

Runde 2, Golfscript, 35 Bytes

"ppuppPq([#fwSmdP[ppnvos\"R\\v(c'P"

Keine Abfallbytes. Fängt wieder mit einem Zitat an!


7-Bit-ASCII funktioniert hier nicht, es werden nur 28 Byte erstellt und eine zusätzliche NUL
LegionMammal978

Jemand gescheiter als ich muss es tun .. vielleicht gibt es einige Sprache in 6 Bits codiert , die ausgeführt werden können , um die richtige Ausgabe zu erzeugen ..
Claudiu

Nein, 6 Bits würden 24 Bytes erzeugen, aber wir brauchen 30.
LegionMammal978

@ LegionMammal978: Richtig, 24 Bytes, dann 8 Sechs-Bit-Anweisungen, um sie zu drucken oder was auch immer zu tun
Claudiu

1
Sie vermissen das Apostroph von 2 Antworten zurück
14mRh4X0r

1

Python 3, 85 Bytes

p1 = 'publ'
p2 = 'pre'
p3 = 'usi'
def cprint():
  print(p1[0], p2[0], p3[0])
cprint()

1

Runde 2, C #, 95 Bytes

namespace Cool{class Program{static void Main(){System.Console.Write("ppuppPq([#fwSmdP[pp");}}}

Wie wäre es, diese "Runde 2" zu markieren?
Claudiu

1

Runde 2, F # -Skript, 55 Bytes

(**)System.Console.Write(@"uppPq([#fwSmdP[ppnvos""R\v")

In meinem vorherigen F # -Skript erfahren Sie, warum es meiner Meinung nach eine gültige Sprache ist.


1

Runde 2, R, 50 Bytes

cat('ppuppPq([#fwSmdP[ppnvos\"R\\v(',file=stdout())

1

Runde 2, Javascript, 60 Bytes

var _p = "p"; alert (_p.repeat (2) + "uppPq ([# fwSmdP [ppnvos" R ");

Ich denke, dass Ihr __unter unnötige Variablen fallen würde. Versuchen Sie, den Namen pin einen aus zwei Buchstaben bestehenden Namen zu ändern und die Zeichenfolge in doppelte Anführungszeichen zu setzen, um einen Backslash für das gedruckte Anführungszeichen einzufügen. Dies sollte die 3 Zeichen ausgleichen, die Sie durch das Entfernen des Symbols verloren haben __,.
LegionMammal978

1
Sie sagten nicht, sie nicht zu benutzen. Sie sagten, höchstens zehn Bytes von ihnen zu verwenden.
SuperJedi224

Es bedeutete , dass Sie können verwenden notwendigen Variablen von bis zu 10 Bytes, aber Sie können nicht verwenden unnötig insgesamt Variablen.
LegionMammal978

@Rainbolt Sie interpretieren es als "Sie können nicht mehr als 10 Bytes (Kommentare), (unnötige Variablen), (Füllen des Programms mit Leerzeichen) oder (Variablennamen) länger als 10 Bytes verwenden", aber wegen In der zweiten Referenz sehe ich es als "Sie können nicht (mehr als 10 Bytes an Kommentaren), (unnötige Variablen), (Füllen des Programms mit Leerzeichen) oder (Variablennamen länger als 10 Bytes) verwenden".
LegionMammal978

Ich habe die Mehrdeutigkeit behoben. In der Frage var __ist nicht erlaubt (wird nicht im Rest des Programms verwendet), sondern umbenanntp wäre akzeptabel.
ASCIIThenANSI

1

Runde 2: Javascript, 90 Bytes

var p = "p"; alert (p + p + p + "u" + p + p + p.toUpperCase () + "q ([# fwSmd" + p.toUpperCase () + "[" + p + p + " n "); // p

Wie wäre es, diese "Runde 2" zu markieren?
Claudiu

Das __,würde unter unnötige Variablen fallen .
LegionMammal978
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.