Schnell! Entkomme dem Schwarzen Loch!

28

Es ist das Jahr 87.539.319 und das einsame Gehen in den Weltraum ist mittlerweile an der Tagesordnung. Viele Menschen reisen allein in den Weltraum, angetrieben von einem Jetpack auf dem Rücken, und programmieren ihren Kurs mit einem PC und einer Tastatur, während sie unterwegs sind.

Du bist eine solche Person; Sie waren auf einem schönen, friedlichen Weltraumspaziergang unterwegs, als Sie plötzlich von der Schwerkraft eines schwarzen Lochs gefangen wurden!

Wenn Sie sich diesem Schwarzen Loch nähern und immer schneller nach innen stürzen, erkennen Sie, dass Ihre einzige Überlebenschance darin besteht, eine Notmeldung zu senden, und hoffen, dass ein nahe gelegenes Schiff kommt, um Sie zu retten.

Also brechen Sie Ihre Tastatur aus und beginnen, ein Programm wegzuschreiben.

Ihr Programm kann in einer beliebigen Sprache sein und muss HELP!auf stdout gedruckt werden (Ihr PC überträgt alles stdout weit in die Tiefe des Weltraums).

Da Sie sich jedoch in der Nähe eines schwarzen Lochs befinden, wird Ihre Tastatur langsam in Stücke gerissen!

Angenommen, Sie verwenden eine QWERTZ-Tastatur wie die folgende und das schwarze Loch befindet sich links von Ihnen.

QWERTY-TASTATUR-LAYOUT

Denken Sie daran, dass Links- und Rechtsverschiebung zwei verschiedene Tasten sind.

Nach jedem Tastendruck wird die am weitesten links liegende Reihe Ihrer Tastatur (Tasten, die durch die am weitesten links liegende rote Linie verdeckt sind) abgerissen und in das schwarze Loch geworfen!

Also, Ihr erster Tastendruck eines beliebige Taste auf der Tastatur sein könnte, aber von da an keinem der ganz links Tab , Caps, Shift, Ctrloder `Tasten verwendet werden können, überhaupt . (r-shift und r-ctrl können weiterhin verwendet werden)

Nach dem nächsten Tastendruck, die Tasten 1, Q, A, Zund Altwerden in den Abgrund geschleudert, und danach nicht mehr verwendet werden können. Danach verlieren Sie Space, X, S, W, 2und so weiter.

Natürlich möchten Sie Ihr Programm so schnell wie möglich abschließen, damit die Rettungszeit verlängert wird. Daher ist dies Code-Golf, und das kürzeste Programm beim Drücken von Tasten gewinnt!

Jede Antwort sollte eine Liste von Tastendrücken enthalten. Wenn meine Antwort also dieses Programm war (in der Sprache squardibblyack)

!HELP\.

Eine Keylist könnte so aussehen:

Shift!HELP Release Shift \.

Länge: 8

Ich mache mir Sorgen, dass diese Herausforderung zu schwierig sein könnte, aber ich würde gerne die Art der Antworten sehen, die eingereicht werden!

theonlygusti
quelle
13
Ich stimme dem nicht zu, weil es sich zu eng anfühlt, um viel Kreativität zu haben.
Isaacg
4
Können wir davon ausgehen, dass die Verwendung der Python-Shell ohne printSTDOUT qualifiziert?
user80551
3
Was ist, wenn meine Tastatur einen Nummernblock hat?
mbomb007
4
Dies könnte mit den Pfeiltasten etwas besser sein.
user80551
6
Ist die Feststelltaste weiterhin wirksam, wenn sie gedrückt wurde, obwohl die Taste nicht mehr gedrückt wurde?
Josh Caswell

Antworten:

42

CJam, 11 Tastenanschläge

Der Code ist

"HELP*")9-

und die schlüsselliste ist

Shift"HELP*") Release Shift 9-

und hier ist eine Demonstration, wie es aussieht:

Bildbeschreibung hier eingeben

Und so funktioniert der Code:

"HELP*"              "This puts the string HELP* on stack";
       )             "This takes out the last character of the string and puts it
                      on the stack as a character";
        9-           "This simply reduces 9 from the ASCII code of * character
                      present on the stack which makes it an !";
                     "CJam automatically prints everything that is on stack";

Probieren Sie den Code hier aus

Optimierer
quelle
2
Das Verwenden des Sternchens war ziemlich clever! Daran hätte ich nie gedacht.
Theonlygusti
2
Nun, ich konnte dies in GolfScript nicht tun. Es ist ein bisschen zu lang. Das Konvertieren von einer Ganzzahl in ASCII ist ineffizient. "HELP*")9-[]+''+. Ich kann die letzten vier nicht tippen.
mbomb007
3
Ich wusste nur, dass CJam eine Antwort haben würde ...
Jerry Jeremiah
9
Eine der zukunftssichersten Sprachen der Welt ist offenbar CJam.
Fors
5
Pass auf deinen Finger auf, wenn du auf den triffst E, es sieht so aus, als würde er in den Abgrund geraten!
Kanadier Luke REINSTATE MONICA
3

rs , 10 Tastenanschläge (setzt voraus, dass der Benutzer Nano verwendet)

Oder ein gleichwertiger Editor, in dem Shiftkein Text ausgewählt wird.

Dies ist eigentlich keine Programmiersprache, sedkann aber für Code Golf rsverwendet werden.

Right Shift ! Left E Left H Right L P Enter

HELP!

Es ersetzt nur die leere Zeichenfolge durch "HILFE!" Und gibt sie effektiv auf dem Bildschirm aus. Etwa gleichbedeutend mit dem sed-Skript:

s/^/HELP!/

Der coole Teil ist, dass rsautomatisch ^/ein Ersetzungsmuster eingefügt wird, bei dem das Trennzeichen ( /) nicht gefunden wird. Praktisch zum Einrücken von Code.

kirbyfan64sos
quelle
Sie vergessen, dass Enterdas auch ein Schlaganfall ist. 10 Schläge.
Vapcguy
1
@vapcguy Richtig. Fest.
kirbyfan64sos
-3

Ich glaube , die schnellste in jedem Skript getan werden könnte Randoms 11 mit Pyth, da jede Sprache verlangen , wird einige Zeichen, wie „p“ oder ein Anführungszeichen oder Sternchen oder so etwas, dann das Wort HELP!, und das Egeht zu gehen schnell, dh zusätzliche Tastendrücke zum Zurückbewegen des Cursors vor Edem Einfügen H, wie er es vorgefunden hat, und dann wieder vorwärts für Lund P.

Wenn Sie etwas haben , das ein Befehlswort erfordert, wie dispoder echo, würden Sie einen Raum zu tun haben , bevor es abgerissen wird, das Shiftund !dann mit dem HomeSchlüssel zu Ihrem Wort zu starten, und die Pfeiltasten als Zufall für beschrieben HELP. Aber Sie werden sich so lange zurechtfinden, bis Sie nur noch angesaugt sind oder die Schlüssel verlieren, die Sie zu schnell benötigen, um einen dieser Schritte auszuführen. Es gibt nur maximal 14 Zeichen und das setzt voraus, dass Ihr letztes \oder ist |. Sie brauchen nur 10, um Folgendes zu tun HELP!:

SHIFT ! HOME E LT ARROW H RT ARROW L P ENTER

Das definierende "oder *oder Pwürde kurz vor dem gedrückt werden H. Also muss 11 die schnellste sein. Oder 9, wenn wir das Ausrufezeichen weglassen und alles großschreiben und kein einzutippendes Symbol haben.

Aber nein, ich, ein Internet-Historiker im Jahr 87.539.319 und paranoid von Außerirdischen und dem verrückten Meteoritenschauer, geschweige denn dem Schwarzen Loch, würde ich mich nicht damit zufrieden geben. Bevor ich Weltraumspaziergang machte, war ich darauf vorbereitet, mit diesem Artikel, den ich in meinen Recherchen gefunden hätte, dafür zu danken. Ich würde eine Textdatei laden, die bereits "HILFE!" und ein Programm haben, das meine Koordinatenposition unter Verwendung der neuesten Satellitenverfolgungsdaten, die wir in dieser Datei haben, schreiben kann. Dieses Programm würde ich "hlp.c" nennen, so würde es gehen:

7 Tastenanschläge:

c Home h l p . Enter

Ich weiß , ich könnte meine Dateinamen kürzer machen, aber niemand will ihre Position durch Zufall durch Eingabe auszustrahlen Hund Enter, vor allem , wenn das Programm auch eine Warnung an die Behörden (ein wenig wie der Aufruf 911 , wenn Sie nicht einen Notfall haben?) , So lassen sie Gehen Sie mit einem 3-Buchstaben-Dateinamen, und wir gehen davon aus, dass wir noch Dateierweiterungen mit .mindestens 1 Zeichen haben müssen. Wenn wir es hlpstattdessen benennen, helpvermeiden wir es, diese fiesen, integrierten Hilfefunktionen zu erhalten, wenn wir im Begriff sind, in einem Schwarzen Loch zu sterben. Ich weiß , ich könnte sogar möglicherweise auslassen die Eingabe .cvon nur tun h l p Enter, aber auf diese Weise ich jene bösen vermeiden Please supply file extensionoderCannot find hlpFehler, wenn ich kurz davor bin, in ein schwarzes Loch gesaugt zu werden. "Müll rein, Müll raus" wird auch in Zukunft ein Standard sein.

So würde meine Grafik aussehen:

Bildbeschreibung hier eingeben

Und das wäre auch leicht zu merken, da die einzige "Rückständigkeit" darin besteht, czuerst zu tippen . Der Rest ist genau wie der Dateiname.

vapcguy
quelle
2
Vor allem , wenn Sie mit dem Betrieb eines Programms gehst (die bereits den Code in sich hat) , dann kann es als eine Kombination aus betrachtet werden mehrere Standardlücken . Zweitens ist dies ein Code-Golf, so dass Sie den tatsächlichen Code angeben müssen, nicht die Annahme, dass der Code bereits in einer aufgerufenen Datei vorhanden ist . Drittens sollten Sie die Liste der Tastenanschläge für das Programm bereitstellen, ohne das Programm auszuführen. Viertens Programme ... hlp.cC
Optimierer
1
... renn nicht so. Sie müssen sie zuerst kompilieren und ausführen. Sie müssen also mindestens tun help.exe(oder help.out), um die kompilierte Codedatei auszuführen. Und schließlich, wenn Sie die Regeln biegen und die Schlupflöcher so sehr ausnutzen, warum nicht einfach eine Datei mit dem Namen h.c?
Optimierer
Die Absicht bei einer .cDatei war, dass es sich um CSCRIPT handeln könnte, nicht um tatsächlichen C-Code, der den Compiler erfordern würde. Wenn ich h.cversucht habe, den Namen einer anderen Datei mit nur 1 Zeichen im Namen einzugeben, könnte dies bedeuten, dass sie versehentlich anstelle einer anderen Datei aufgerufen wird - das habe ich bereits erklärt. Was auch immer Code, der war in der .cDatei, ob es war Console.Log("HELP!"), Console.WriteLine("HELP!")usw., ist weitgehend irrelevant, zumal es würde auch Code - Schnittstelle mit Satelliten umfassen , um ein Update koordinieren bekommen - etwas , was ich bin sicher , dass in der Zukunft offen Quelle.
Vapcguy
Mein Punkt in diesem Beitrag war auch, anzuzeigen, dass ein Dateiname oder etwas außerhalb der Grenzen der Regeln der einzige Weg sein würde, um 11 Tastenanschläge zu schlagen, übrigens, da es nur für 10 dauert HELP!, wie ich sagte vor Kirby und nur weniger, wie 9, wenn HELPGroß- und Kleinschreibung und Shift keine Rolle spielten und wir kein Zeichen vorher oder nachher haben mussten , wie zum Beispiel mit dem Ausrufezeichen oder in Kirbys Fall, einen Schlüssel eingeben zu müssen Zeichen, wie ein poder *das Programm zu initiieren.
Vapcguy
Und help.exeund help.outwürde nicht funktionieren, wenn das Schwarze Loch die Schlüssel zerreißt. Das ewürde mit der Zeit verschwunden sein exe, und das tist verschwunden, wenn man versucht zu tippen out. Sie könnten geben Sie tin out, zuerst, dann Start drücken und anschließend den Typ HELPTeil, aber wenn Sie die Erweiterung auf 1 Charakter behalten konnte, warum würden Sie nicht?
Vapcguy