Es el año 87,539,319 y la caminata espacial solitaria ahora es un lugar común, muchas personas viajan al espacio solas, impulsadas por nada más que un jetpack en sus espaldas, programando su curso con una computadora personal y un teclado a medida que avanzan.
Eres una de esas personas; estabas en una hermosa y pacífica caminata espacial, cuando, de repente, ¡te atrapó la gravedad de un agujero negro!
A medida que caes en picado hacia este agujero negro, girando cada vez más rápido hacia adentro, te das cuenta de que tu única posibilidad de supervivencia es transmitir un mensaje de socorro, y esperar que una nave cercana venga a rescatarte.
Entonces, rompes el teclado y comienzas a escribir un programa.
Su programa puede estar en cualquier idioma y debe imprimirse HELP!
en stdout (su PC transmite todos los stdout en las profundidades del espacio).
Sin embargo, como estás cerca de un agujero negro, ¡tu teclado se está desgarrando lentamente!
Suponga que está usando un teclado QWERTY como el siguiente y que el agujero negro está a su izquierda;
Recuerde, el desplazamiento hacia la izquierda y hacia la derecha son dos claves diferentes.
¡Después de cada pulsación de tecla, la fila más a la izquierda de su teclado (teclas cubiertas por la línea roja más a la izquierda) se arranca y se arroja al agujero negro!
Por lo tanto, su primera pulsación de tecla podría ser cualquier tecla del teclado, pero a partir de entonces ninguno de los más a la izquierda Tab , Caps, Shift, Ctrlo `teclas puede ser utilizado, en absoluto . (r-shift y r-ctrl todavía se pueden usar)
Después de la siguiente pulsación de tecla, las teclas 1, Q, A, Zy Altson lanzados al abismo, y no pueden ser utilizadas a partir de entonces. Después de eso, se pierde Space, X, S, W, 2y así sucesivamente.
Obviamente, desea completar su programa lo más rápido posible, para aumentar el tiempo de rescate; por lo tanto, este es el código de golf, ¡y el programa más corto en pulsaciones de teclas gana!
Cada respuesta debe proporcionar una lista de pulsaciones de teclas, por lo tanto, si mi respuesta fue este programa (en el idioma squardibblyack)
!HELP\.
una lista clave podría verse así:
Shift!HELP cambio de liberación \.
longitud: 8
¡Me preocupa que este desafío sea demasiado difícil, pero me encantaría ver el tipo de respuestas enviadas!
fuente
print
calificar como STDOUT?Respuestas:
CJam, 11 pulsaciones de teclas
El código es
y la lista clave es
Shift"HELP*") cambio de liberación 9-
y aquí hay una demostración de cómo se ve:
y así es como funciona el código:
Prueba el código aquí
fuente
"HELP*")9-[]+''+
. No puedo escribir los últimos cuatro.E
, ¡parece que podría ser llevado al abismo!rs , 10 pulsaciones de teclas (se supone que el usuario está usando Nano)
O editor equivalente donde Shiftno selecciona texto.
Esto no es realmente un lenguaje de programación, pero si
sed
se puede usar en Code Golf, sers
puede usar.Right Shift ! Left E Left H Right L P Enter
Simplemente reemplaza la cadena vacía con "¡AYUDA!", Imprimiéndola efectivamente en la pantalla. Aproximadamente equivalente al script sed:
Lo bueno es que
rs
se coloca automáticamente^/
delante de un patrón de reemplazo donde/
no se encuentra el delimitador ( ). Práctico para sangrar código.fuente
Enter
es un derrame cerebral. 10 golpesCreo que lo más rápido que esto podría hacerse en cualquier script es Random's 11 con Pyth, ya que cualquier lenguaje requerirá algún carácter, como "p" o una comilla o asterisco o algo así, la palabra
HELP!
, y eso Ese va a ir rápido, lo que significa presionar teclas adicionales para mover el cursor hacia atrás antes Ede colocarlo H, como lo encontró, y luego hacia adelante nuevamente para Ly P.Si tiene algo que requiere una palabra de comando, como
disp
oecho
, primero debe hacer un espacio antes de que se rompa , luego, Shifty !luego use la Hometecla para comenzar su palabra y las teclas de flecha como se describe al azarHELP
. Pero estará dando vueltas hasta que sea absorbido o pierda las llaves que necesita demasiado rápido para hacer cualquiera de ellas. Solo hay un máximo de 14 caracteres, y eso supone que su último es \o |. Necesitas 10 solo para hacerHELP!
:SHIFT ! HOME E LT ARROW H RT ARROW L P ENTER
La definición
"
o*
oP
conseguirían presionado justo antes de la H. Entonces 11 tiene que ser el más rápido. O 9 si dejamos de lado la exclamación y las mayúsculas y no tenemos un símbolo para escribir.Pero no, yo, siendo un historiador de internet en el año 87,539,319 y todo, y paranoico de los extraterrestres y la lluvia de meteoritos, y mucho menos el agujero negro, no me conformaría con eso. Antes de salir a caminar por el espacio, estaría preparado, con este artículo que habría encontrado en mi investigación para agradecer eso. Cargaría un archivo de texto que ya tiene "¡AYUDA!" en él, y tengo un programa que podría escribir mi posición de coordenadas usando los últimos datos de satélite de seguimiento que tenemos en ese archivo. Ese programa lo llamaría "hlp.c", por lo que iría:
7 pulsaciones de teclas:
c Home h l p . Enter
Me doy cuenta de que podría acortar mi nombre de archivo, pero nadie quiere transmitir su posición por accidente escribiendo Hy Enter, especialmente si el programa también alerta a las autoridades (¿un poco como llamar al 911 cuando no tiene una emergencia?) vaya con un nombre de archivo de 3 letras, y asumiremos que todavía tenemos que tener extensiones de archivo con un
.
mínimo de 1 carácter. Además, nombrarlo enhlp
lugar dehelp
significa que evitamos obtener esas desagradables funciones de ayuda incorporadas cuando estamos a punto de morir en un agujero negro. Me doy cuenta de que incluso podría omitir escribir .csimplemente haciendo h l p Enter, pero de esta manera evito esas cosas desagradablesPlease supply file extension
oCannot find hlp
errores cuando estoy a punto de ser absorbido por un agujero negro. "Basura, basura", después de todo, seguirá siendo un estándar en el futuro.Entonces mi gráfico se vería así:
Y esto también sería fácil de recordar, ya que el único "atraso" es escribir cprimero. El resto es como el nombre del archivo.
fuente
hlp.c
C
help.exe
(ohelp.out
) para ejecutar el archivo de código compilado. Y, por último, si está doblando las reglas y haciendo tanto uso de las lagunas, ¿por qué no simplemente llamar a un archivoh.c
?.c
archivo era que podría ser CSCRIPT, no un código C real que requeriría el compilador. Alh.c
intentar escribir el nombre de otro archivo, con solo 1 carácter en el nombre, podría significar que se llama accidentalmente en lugar de otro archivo, ya lo expliqué. Cualquiera que sea el código que se encontraba en el.c
archivo, si eraConsole.Log("HELP!")
,Console.WriteLine("HELP!")
etc., es en gran medida irrelevante, sobre todo ya que también iba a incluir el código de interfaz con los satélites para obtener una solución de coordenadas - algo que estoy seguro que en el futuro será abierta fuente.HELP!
, como mencioné antes de Kirby, y solo menos, como 9, si las mayúsculas y el uso de Shift no importaban y no tuviéramos que tener un personaje antes o despuésHELP
, como con el signo de exclamación, o en el caso de Kirby, tener que escribir una clave carácter, como ap
o*
para iniciar el programa.help.exe
yhelp.out
no funcionaría con el agujero negro de desgarrar de las llaves. Ele
tiempo se habría ido para cuandoexe
surgiera, y se habrá idot
al intentar escribirout
. Se podría escribir lat
deout
, en primer lugar, a continuación, pulse Inicio, y escriba laHELP
parte, pero si se puede mantener la extensión de 1 carácter, ¿por qué no?