Rápido! Fuja do buraco negro!

28

É o ano de 87.539.319 e a caminhada solitária no espaço é agora comum, muitas pessoas viajam para o espaço sozinhas, impulsionadas por nada além de um jetpack nas costas, programando seu percurso com um computador pessoal e teclado à medida que avançam.

Você é uma dessas pessoas; você estava em uma adorável e pacífica caminhada espacial, quando, de repente, você foi preso pela gravidade de um buraco negro!

Ao mergulhar em direção a esse buraco negro, espiralando cada vez mais rápido para dentro, você percebe que sua única chance de sobrevivência é transmitir uma mensagem de socorro e espera que um navio próximo venha resgatá-lo.

Então, você quebra o teclado e começa a digitar um programa.

Seu programa pode estar em qualquer idioma e deve ser impresso HELP!em stdout (o seu PC transmite todo o stdout para as profundezas do espaço.)

No entanto, como você está perto de um buraco negro, seu teclado está sendo rasgado lentamente em pedaços!

Suponha que você esteja usando um teclado QWERTY como o abaixo, e que o buraco negro esteja à sua esquerda;

LAYOUT DE TECLADO QWERTY

Lembre-se de que o turno esquerdo e direito são duas teclas diferentes.

após cada pressionamento de tecla, a linha mais à esquerda do teclado (teclas cobertas pela linha vermelha à esquerda) é arrancada e lançada no buraco negro!

Assim, o primeiro pressionamento de tecla pode ser qualquer tecla do teclado, mas a partir de então nenhum dos mais à esquerda Tab , Caps, Shift, Ctrlou `podem ser usados chaves, em tudo . (r-shift e r-ctrl ainda podem ser usados)

Após a próxima pressão de tecla, as teclas 1, Q, A, Ze Altsão arremessados para o abismo, e não pode ser usado depois. Depois disso, você perde Space, X, S, W, 2e assim por diante.

Obviamente, você deseja concluir seu programa o mais rápido possível, para aumentar o tempo de resgate; portanto, este é o código-golfe, e o programa mais curto em pressionamentos de tecla vence!

Cada resposta deve fornecer uma lista de pressionamentos de tecla; portanto, se minha resposta foi esse programa (no idioma squardibblyack)

!HELP\.

uma lista de chaves pode ter a seguinte aparência:

Shift!HELP turno de liberação \.

comprimento: 8

Estou preocupado que esse desafio possa ser muito difícil, mas eu adoraria ver os tipos de respostas enviadas!

theonlygusti
fonte
13
Estou votando contra isso porque parece muito restrito para ter muita criatividade.
Isaacg
4
Podemos supor que o uso do shell python sem se printqualifique como STDOUT?
user80551
3
E se o meu teclado tiver um teclado numérico?
mbomb007
4
Isso pode ser um pouco melhor com as teclas de seta.
user80551
6
Caps lock ainda é eficaz se foi pressionado, embora a tecla tenha desaparecido?
Josh Caswell

Respostas:

42

CJam, 11 pressionamentos de tecla

O código é

"HELP*")9-

e a lista de chaves é

Shift"HELP*") turno de liberação 9-

e aqui está uma demonstração de como fica:

insira a descrição da imagem aqui

e aqui está como o código funciona:

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

Experimente o código aqui

Optimizer
fonte
2
Usar o asterisco foi muito inteligente! Eu nunca pensei nisso.
theonlygusti
2
Bem, eu não consegui fazer isso no GolfScript. É um pouco longo demais. A conversão de um número inteiro para ascii é ineficiente. "HELP*")9-[]+''+. Não consigo digitar os quatro últimos.
mbomb007
3
Eu só sabia CJam teria uma resposta ...
Jerry Jeremias
9
Portanto, uma das linguagens mais preparadas para o futuro do mundo é aparentemente o CJam.
Fors
5
Assista o seu dedo quando você bate no E, parece que ele pode ser levado para o abismo!
Canadian Luke REINSTATE MONICA
3

rs , 10 pressionamentos de tecla (assume que o usuário está usando o Nano)

Ou editor equivalente, onde Shiftnão seleciona texto.

Esta não é realmente uma linguagem de programação, mas se sedpode ser usada no Code Golf, rspode ser usada.

Right Shift ! Left E Left H Right L P Enter

HELP!

Apenas substitui a string vazia por "HELP!", Efetivamente imprimindo-a na tela. Aproximadamente equivalente ao script sed:

s/^/HELP!/

A parte interessante é que rscoloca automaticamente ^/na frente de um padrão de substituição onde o delimitador ( /) não é encontrado. Útil para recuar o código.

kirbyfan64sos
fonte
Você esquece que Enteré um derrame também. 10 pancadas.
precisa saber é o seguinte
1
@vapcguy Certo. Fixo.
kirbyfan64sos
-3

Eu acredito que o mais rápido isso poderia ser feito em qualquer roteiro é aleatória de 11 com Pyth, uma vez que qualquer linguagem vai exigir algum personagem, como "p" ou uma marca de citação ou asterisco ou algo assim, então a palavra HELP!, e que Eestá a ir rápido, ou seja, pressionamentos extras de teclas para mover o cursor para trás antes Ede colocar H, como ele encontrou, e depois avançar novamente para Le P.

Se você tiver algo que exija uma palavra de comando, como dispou echo, você precisará primeiro criar um espaço antes de ser arrancado, Shifte !então use a Hometecla para iniciar sua palavra e as teclas de seta, conforme descrito aleatoriamente HELP. Mas você estará se atrapalhando até que seja sugado ou perca as chaves necessárias rapidamente para fazer qualquer uma delas. Há apenas um máximo de 14 caracteres, e isso pressupõe que o último seja \ou |. Você precisa de 10 apenas para fazer HELP!:

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

A definição "ou *ou Pseria pressionada imediatamente antes da H. Então o 11 tem que ser o mais rápido. Ou 9, se deixarmos de fora a exclamação e colocar em maiúscula tudo e não tivermos um símbolo para digitar.

Mas não, eu, sendo um historiador da Internet no ano 87.539.319 e tudo, e sendo paranóico de alienígenas e da terrível chuva de meteoros, sem falar no buraco negro, eu não aceitaria isso. Antes de sair para passear no espaço, eu estaria preparado, com este artigo que eu teria encontrado em minha pesquisa para agradecer por isso. Eu carregaria um arquivo de texto que já tem "HELP!" nele e ter um programa que possa gravar minha posição de coordenada usando os dados de rastreamento mais recentes que temos nesse arquivo. Esse programa eu chamaria "hlp.c", então ele iria:

7 pressionamentos de teclas:

c Home h l p . Enter

Sei que poderia reduzir meu nome de arquivo, mas ninguém quer transmitir sua posição acidentalmente digitando He Enter, especialmente se o programa também alertar as autoridades (como ligar para o 911 quando você não tiver uma emergência?), Então vamos escolha um nome de arquivo com três letras e assumiremos que ainda precisamos ter extensões de arquivo com no .mínimo 1 caractere. Além disso, nomeá-lo em hlpvez de helpevitar evitar esses recursos desagradáveis ​​e internos da Ajuda quando estamos prestes a morrer em um buraco negro. Eu percebo que eu poderia omitir digitando .capenas fazendo h l p Enter , mas dessa maneira eu evito aqueles desagradáveis Please supply file extensionouCannot find hlperros quando estou prestes a ser sugado para um buraco negro. Afinal, "lixo dentro, lixo fora" ainda será um padrão no futuro.

Então, meu gráfico ficaria assim:

insira a descrição da imagem aqui

E isso também seria fácil de lembrar, pois o único "atraso" é digitado cprimeiro. O resto é exatamente como o nome do arquivo.

vapcguy
fonte
2
Primeiro de tudo, se você estiver executando um programa (que já possui o código), ele poderá ser considerado como uma combinação de várias brechas padrão . Em segundo lugar, este é um código-golf, então você deve fornecer o código real, não uma suposição de que o código já esteja presente em um arquivo chamado . Em terceiro lugar, você deve fornecer a lista de pressionamentos de teclas para o programa, não executando o programa. Em quarto lugar, os programas ...hlp.cC
Optimizer
1
... não corra assim. Você precisa primeiro compilá-los e executá-los. Portanto, você precisará pelo menos fazer help.exe(ou help.out) para executar o arquivo de código compilado. E, por último, se você está dobrando as regras e usando tanto as brechas, por que não simplesmente chamar um arquivo h.c?
Optimizer
A intenção com um .carquivo era que ele pudesse ser CSCRIPT, não um código C real que exigiria o compilador. Isso h.csignifica que, ao tentar digitar o nome de outro arquivo, com apenas 1 caractere no nome, é acidentalmente chamado em vez de outro arquivo - já expliquei isso. Seja qual for o código que estava no .carquivo, se era Console.Log("HELP!"), Console.WriteLine("HELP!")etc., é em grande parte irrelevante, especialmente porque também estava indo para incluir o código para a interface com os satélites para obter uma correção coordenar - algo que eu tenho certeza que no futuro será aberto fonte.
precisa saber é o seguinte
Meu objetivo com este post também foi indicar que ter um nome de arquivo ou algo fora dos limites das regras seria a única maneira de pressionar 11 pressionamentos de tecla, já que são necessários apenas 10 HELP!, como eu mencionei antes de Kirby, e apenas menos, como 9, se a capitalização e o uso de Shift não importassem e não precisássemos ter um caractere antes ou depois HELP, como com o ponto de exclamação ou, no caso de Kirby, ter que digitar uma chave caractere, como um pou *para iniciar o programa.
precisa saber é o seguinte
E help.exee help.outnão iria trabalhar com o buraco negro de rasgando das chaves. O eteria ido pelo tempo que exeveio, eo tdesapareceu quando tentando digitar out. Você pode digitar o tem outprimeiro lugar, em seguida, pressione Início e digite a HELPparte, mas se você pudesse manter a extensão de 1 caractere, por que não você?
precisa saber é o seguinte