Presto! Sfuggire al buco nero!


28

È l'anno 87.539.319 e il cammino spaziale solitario è ormai un luogo comune, molte persone viaggiano nello spazio da sole, spinte da nient'altro che un jetpack sulla schiena, programmando il loro percorso con un personal computer e una tastiera mentre procedono.

Sei una di queste persone; eri su una passeggiata nello spazio incantevole e tranquilla, quando, all'improvviso, sei stato catturato dalla gravità di un buco nero!

Mentre precipiti verso questo buco nero, facendo una spirale sempre più veloce verso l'interno, ti rendi conto che la tua unica possibilità di sopravvivenza è quella di trasmettere un messaggio di soccorso e speri che una nave vicina venga a salvarti.

Quindi, rompi la tastiera e inizi a digitare un programma.

Il tuo programma può essere in qualsiasi lingua e deve stampare HELP!su stdout (il tuo PC trasmette tutto lo stdout in profondità nello spazio.)

Tuttavia, mentre sei vicino a un buco nero, la tua tastiera viene lentamente ridotta a brandelli!

Supponi di utilizzare una tastiera QWERTY come quella in basso e che il buco nero sia alla tua sinistra;

LAYOUT TASTIERA QWERTY

Ricorda, i tasti sinistro e destro sono due tasti diversi.

dopo ogni pressione del tasto, la riga più a sinistra della tastiera (tasti coperti dalla riga più a sinistra) viene strappata e gettata nel buco nero!

Quindi, la prima pressione del tasto potrebbe essere qualsiasi tasto sulla tastiera, ma da allora in poi nessuno dei più a sinistra Tab , Caps, Shift, Ctrlo `le chiavi possono essere utilizzati, a tutti . (è ancora possibile utilizzare r-shift e r-ctrl)

Dopo la successiva pressione del tasto, i tasti 1, Q, A, Ze Altvengono scagliati verso l'abisso, e non possono essere utilizzati in seguito. Dopo di che, si perde Space, X, S, W, 2e così via.

Ovviamente, vuoi completare il tuo programma il più rapidamente possibile, in modo da aumentare i tempi di salvataggio; quindi, questo è code-golf e vince il programma più breve con la pressione dei tasti !

Ogni risposta dovrebbe fornire un elenco di tasti premuti, quindi, se la mia risposta fosse questo programma (nella lingua squardibblyack)

!HELP\.

un elenco di chiavi potrebbe apparire come:

Shift!HELP rilasciare il turno \.

lunghezza: 8

Temo che questa sfida potrebbe essere troppo difficile, ma mi piacerebbe vedere il tipo di risposte inviate!


13
Lo sto ridimensionando perché mi sembra troppo limitato per avere molta creatività.
isaacg,

4
Possiamo supporre che l'uso della shell Python senza essere printqualificato come STDOUT?
user80551

3
Cosa succede se la mia tastiera ha un tastierino numerico?
mbomb007,

4
Questo potrebbe essere leggermente migliore con i tasti freccia.
user80551

6
Il blocco maiuscole è ancora efficace se è stato premuto anche se il tasto è scomparso?
Josh Caswell,

Risposte:


42

CJam, 11 sequenze di tasti

Il codice è

"HELP*")9-

e l'elenco di chiavi è

Shift"HELP*") rilasciare il turno 9-

ed ecco una dimostrazione di come appare:

inserisci qui la descrizione dell'immagine

ed ecco come funziona il codice:

"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";

Prova qui il codice


2
L'uso dell'asterisco è stato piuttosto intelligente! Non ci avevo mai pensato.
theonlygusti,

2
Bene, non sono stato in grado di farlo in GolfScript. È un po 'troppo lungo. La conversione da un numero intero in ascii è inefficiente. "HELP*")9-[]+''+. Non riesco a digitare gli ultimi quattro.
mbomb007,

3
Sapevo solo che CJam avrebbe avuto una risposta ...
Jerry Jeremiah,

9
Quindi una delle lingue più a prova di futuro del mondo è apparentemente CJam.
Fors,

5
Guarda il tuo dito quando lo colpisci E, sembra che potrebbe essere preso nell'abisso!
Canadian Luke REINSTATE MONICA

3

rs , 10 sequenze di tasti (presuppone che l'utente stia usando Nano)

O editor equivalente dove Shiftnon seleziona il testo.

Questo non è in realtà un linguaggio di programmazione, ma se sedpuò essere utilizzato su Code Golf, rspuò essere utilizzato.

Right Shift ! Left E Left H Right L P Enter

HELP!

Sostituisce semplicemente la stringa vuota con "AIUTO!", Stampandola efficacemente sullo schermo. Praticamente equivalente allo script sed:

s/^/HELP!/

La parte interessante è che rsmette automaticamente ^/davanti a un modello di sostituzione in cui il delimitatore ( /) non viene trovato. Comodo per il rientro del codice.


Dimentichi che anche questo Enterè un colpo. 10 colpi.
vapcguy,

1
@vapcguy Giusto. Fisso.
Kirbyfan64sos,

-3

Credo che il più veloce che si possa fare in qualsiasi script sia Random's 11 con Pyth, dal momento che qualsiasi lingua richiederà qualche carattere, come "p" o un segno di virgolette o un asterisco o qualcosa del genere, quindi la parola HELP!, e che Eandrà veloce, il che significa che i tasti in più premono per spostare il cursore indietro prima Edi inserire H, come ha trovato, quindi in avanti di nuovo per Le P.

Se hai qualcosa che richiede una parola di comando, come dispo echo, dovresti fare uno spazio prima che venga strappato, il Shifte !, quindi usa il Hometasto per iniziare la tua parola e i tasti freccia come descritto per Casuale HELP. Ma dovrai armeggiare finché non sarai semplicemente risucchiato o perderai le chiavi di cui hai bisogno troppo velocemente per fare una di quelle. C'è solo un massimo di 14 caratteri e questo presuppone che l'ultimo sia \o |. Hai bisogno di 10 solo per fare HELP!:

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

La definizione "o *o Pverrebbe premuta poco prima del H. Quindi l'11 deve essere il più veloce. O 9 se escludiamo l'esclamazione e capitalizziamo tutto e non abbiamo un simbolo da digitare.

Ma no, io, essendo uno storico di Internet nell'anno 87.539.319 e tutti, ed essendo paranoico di alieni e la bizzarra pioggia di meteoriti, per non parlare del buco nero, non mi accontenterei di questo. Prima di uscire nello spazio, sarei preparato, con questo articolo che avrei trovato nelle mie ricerche per ringraziarlo. Vorrei caricare un file di testo che ha già "AIUTO!" in esso, e avere un programma che potrebbe scrivere la mia posizione di coordinate usando gli ultimi dati satellitari di tracciamento che abbiamo in quel file. Quel programma che chiamerei "hlp.c", quindi andrebbe:

7 sequenze di tasti:

c Home h l p . Enter

Mi rendo conto che potrei accorciare il mio nome di file, ma nessuno vuole trasmettere la propria posizione per errore digitando He Enter, soprattutto se il programma avvisa anche le autorità (un po 'come chiamare il 911 quando non si ha un'emergenza?) vai con un nome di file di 3 lettere e supponiamo che dobbiamo avere ancora estensioni di file con un .minimo di 1 carattere. Inoltre, nominandolo hlpinvece di helpsignifica che evitiamo di ottenere quelle cattive funzionalità integrate della Guida quando stiamo per morire in un buco nero. Mi rendo conto che potrei addirittura omettere di scrivere .csemplicemente facendo h l p Enter, ma in questo modo evito quelli cattivi Please supply file extensionoCannot find hlperrori quando sto per essere risucchiato in un buco nero. "Garbage in, garbage out", dopo tutto, sarà ancora uno standard in futuro.

Quindi la mia grafica sarebbe simile a:

inserisci qui la descrizione dell'immagine

E questo sarebbe anche facile da ricordare, poiché l'unica "arretratezza" sta digitando per cprima. Il resto è proprio come il nome del file.


2
Prima di tutto, se stai eseguendo un programma (che contiene già il codice), allora può essere considerato come una combinazione di diverse scappatoie standard . In secondo luogo, questo è un codice-golf, quindi devi dare il codice effettivo, non supponendo che il codice sia già presente in un file chiamato . In terzo luogo, è necessario fornire l'elenco delle sequenze di tasti per il programma, non eseguendo il programma. In quarto luogo, programmi ...hlp.cC
Ottimizzatore,

1
... non correre così. Devi prima compilarli ed eseguirli. Quindi dovrai almeno fare help.exe(o help.out) per eseguire il file di codice compilato. E infine, se stai piegando le regole e facendo così tanto uso delle scappatoie, perché non semplicemente chiamare un file h.c?
Ottimizzatore

L'intento con un .cfile era che potesse essere CSCRIPT, non un vero codice C che avrebbe richiesto il compilatore. Avere h.cpotuto significare quando si tenta di digitare il nome di un altro file, con solo 1 carattere nel nome, che viene accidentalmente chiamato invece di un altro file - l'ho già spiegato. Qualunque sia il codice che era nel .cfile, sia che fosse Console.Log("HELP!"), Console.WriteLine("HELP!")e così via, è in gran parte irrilevante, soprattutto da quando è stato anche andando a includere il codice per l'interfaccia con i satelliti per ottenere una correzione di coordinate - qualcosa che sono sicuro, in futuro sarà aperto fonte.
vapcguy,

Il mio punto con questo post era anche quello di indicare che avere un nome file, o qualcosa al di fuori dei limiti delle regole, sarebbe stato l'unico modo per battere 11 sequenze di tasti, tra l'altro, dal momento che ci vogliono 10 solo per HELP!, come ho già detto prima di Kirby, e solo meno, come 9, se le maiuscole e l'uso di Maiusc non avevano importanza e non dovevamo avere un personaggio prima o dopo HELP, come nel caso del punto esclamativo, o nel caso di Kirby, dover digitare una chiave carattere, come un po *per avviare il programma.
vapcguy,

E help.exee help.outnon funzionerebbe con il buco nero del lacerando delle chiavi. Il esarebbe andato per il momento exesi avvicinò, e il tnon c'è più quando si cerca di digitare out. Si potrebbe digitare la ta out, prima, quindi premere Home e digitare la HELPparte, ma se si potesse mantenere l'estensione a 1 carattere, perché non è vero?
vapcguy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.