Saltar al contenido

Cree un programa “hacker typer” que represente su propio código fuente

Es importante interpretar el código correctamente antes de aplicarlo a tu proyecto y si ttienes algo que aportar puedes dejarlo en la sección de comentarios.

Solución:

HTML y JavaScript, 123


Esto funciona de manera similar a Hacker Typer, pero con su propio código fuente. Avísame si he entendido mal las reglas.

Y aquí hay una versión con estilo (170 caracteres):





he hecho un manifestación. Se modifica porque JS Bin agrega mucho código adicional, pero la idea general es la misma.

fiesta, 51 58

for w in $(<$0);do read -sn 1;printf -- "$w ";done

Perl + Término::ReadKey, 56 bytes

use
Term'ReadKey;ReadMode
4;open
0;ReadKey,print
for
<0>

Gracias a ThisSuitIsBlackNot por la inspiración original y a primo por sugerir open 0 y <0>.

Tenga en cuenta que la nueva línea después de for en realidad es innecesario, excepto que necesito incluir una nueva línea adicional algun lado para llevar el recuento de espacios en blanco hasta el mínimo especificado de cinco.

También tenga en cuenta que, al igual que el envío de ThisSuitIsBlackNot, este programa requiere el módulo Term::ReadKey de CPAN. En Debian/Ubuntu Linux, este módulo, si aún no está presente, se puede instalar fácilmente con el comando sudo apt-get install libterm-readkey-perl.

Además, para ahorrar algunos caracteres, este programa no restaura el modo de entrada a la normalidad al salir, por lo que es posible que no pueda ver lo que está escribiendo después. Ejecutando el comando de shell stty sane o reset debería arreglar eso. Este problema podría solucionarse, a costa de 10 bytes adicionales, con:

use
Term'ReadKey;ReadMode
4;open
0;ReadKey,print
for<0>;ReadMode
0

Bonificación: quine pura, 81 bytes

$_=quse
Term'ReadKey;ReadMode
4;ReadKey,say
for
split$/,
"$_=q$_;eval";eval

Nuevamente, la nueva línea después de la coma solo es necesaria para cumplir con el mínimo de cinco espacios en blanco.

A diferencia del programa de 56 bytes anterior, esta versión en realidad no necesita leer su propio código fuente, ya que se basa en un quine, específicamente en este quine:

$_=qsay"$_=q$_;eval";eval

Lo bueno de este quine es que puede transportar fácilmente una "carga útil" arbitraria dentro del q bloque, sin tener que repetirlo. Si bien no puede vencer <0> en pocas palabras, se acerca bastante.

Nota: Este programa usa Perl 5.10+ say característica, y por lo tanto necesita ser invocado con el -M5.010 (o -E) interruptor de línea de comando. Según el consenso establecido sobre metadatos, los interruptores que se utilizan para habilitar funciones de lenguaje moderno no cuentan como caracteres adicionales. La solución más corta que puedo encontrar sin say es de 83 bytes:

$_=quse
Term'ReadKey;ReadMode
4;ReadKey,print
for
split/^/,
"$_=q$_;eval";eval

Ambos también se pueden hacer más compatibles con la terminal al (unir las dos últimas líneas e) insertar:

;ReadMode
0

antes del ultimo }.

Tienes la opción de corroborar nuestro estudio añadiendo un comentario o dejando una valoración te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *