Debe escribir un programa que realice una de las siguientes acciones.
- Solo muestra "Hello World" no hace nada más
- Salidas y nada más (sin salida, sin errores).
- Toma una línea de entrada, la analiza como un número entero, muestra la primera cantidad de números primos (o da un buen error si se le da una entrada que no se puede analizar como un número entero, o es menor que 0.)
- Dada una línea de entrada, analiza que tiene un símbolo de stock y comprueba en línea el valor de stock actual y su cambio.
El truco, no debería ser evidente qué función realiza. Es decir, para alguien que mira su código, no debería ser evidente qué función hará. Además, solo puede realizar y ser capaz de realizar una función (no puede elegir). Lo bueno que es un programa está determinado por la incertidumbre de alguien que lo mira en cuanto a cuál es su función, y también cuán familiar es que persona está con ese lenguaje.
BONIFICACIÓN: Si lo hace de una manera inteligente, aunque para cualquier compilador / intérprete y plataforma, el programa también realizará la misma función, diferentes compiladores / intérpretes o plataformas, realizará una función diferente. Este bono solo se puede cobrar si se hace de manera inteligente.
BONIFICACIÓN: Si su programa solo contiene código que es capaz de una función (no guarde nada, ya que el código vacío es capaz de eso), y no es posible realizar una modificación simple no relacionada con la función para permitirle realizar una función diferente. Por ejemplo: si lo hiciste
obfuscatedBool = 1g8uhad'l8fygrcetdu8y4fd/,.oe87fy4d --Magic
if obfuscatedBool: print "Hello World"
No contaría como ofuscadoBool podría hacerse verdadero o falso para que imprima "Hello World" o no haga nada respectivamente.
BONIFICACIÓN INFINITA: Si te das cuenta de ambas bonificaciones simultáneamente, eres mágico.
BONIFICACIÓN NEGATIVA: Uso de bibliotecas con habilidades específicas para realizar las funciones.
¡Votantes, tengan en cuenta las bonificaciones, porque gana el programa con más votos!
Nota: Si dice lo que hace su programa, ¡asegúrese de usar la sintaxis de spoiler!
Respuestas:
Espacio en blanco / Brainfuck / Python
Wikipedia: Whitespace (lenguaje de programación)
Intérprete de espacios en blanco en línea para evaluar la respuesta
Intérprete en línea Brainfuck para evaluar la respuesta
fuente
JS
fuente
(o^_^o)
.Ensamblaje MS-DOS x86
Debido a que ya no está ofuscado cuando está en ensamblaje, ¡hagámoslo aún peor! Esto DEBERÍA funcionar con cualquier ensamblador que pueda ensamblarse en un archivo COM, pero solo lo he probado con TASM para DOS usando
tasm obfuse
,tlink /t obfuse
fuente
do
fuente
LOLCODE
Este lenguaje ya está ofuscado por sí mismo. Aquí está mi código:
fuente
JavaScript (ES6)
Usando pragma
black magic
para revelar el verdadero poder de JavaScript:Salida:
Explicaciones:
Este programa es bastante simple y se puede resumir a continuación.
Todo lo demás si azúcar sintáctico!
Aquí está la versión anotada:
fuente
COBOL (IBM Enterprise COBOL)
Si se muestra eso, muy cerca del 100% de los programadores de IBM Mainframe COBOL dirían "¡eso ni siquiera es un programa, no se compilará!". Cuanta más experiencia tengan, menos probable es que piensen que se compilará (ya que los COBOL de mainframe más antiguos eran mucho más estrictos).
Luego pregunte "si compila, ¿qué hace?" Ellos dirían, "no se compilará, pero si lo hiciera, daría algún tipo de error, probablemente Language Environment daría un U4038 o algo así".
Lograron acortarlo. Hay cuatro DIVISIONES en un programa COBOL. IDENTIFICACIÓN / ID, MEDIO AMBIENTE, DATOS, PROCEDIMIENTO. Resulta que PROCEDIMIENTO requiere la palabra DIVISIÓN y los demás no. Adivina cuál eliminé primero y asumí que las otras palabras DIVISIÓN eran obligatorias ... más desconcierto revelado de otra manera. Lástima que no sea golf. Un programa COBOL de dos caracteres ...
fuente
Java, C ++ - 11 1 Bonificación reclamada
No estoy seguro de si obtuve ambas bonificaciones, pero ya era un dolor de cabeza mezclar 2 lenguajes de programación ...
fuente
Python - 1 bono reclamado
En Python 2,
1
dividido por2
iguales0
.1
dividido por0
no puede evaluarse y arroja una división por cero error. No se imprime nada, y aún así el programa finaliza sin error.En Python 3,
1/2
=>0.5
y1/0.5
=>2.0
. No hay error.Hello, World!
está impreso.fuente
hello world
de alguna manera y estarás bien.Lote
No sé si las contorneadas cuentan como ofuscadas, aunque definitivamente hay algunos aspectos de la ofuscación presente.
fuente
%%%%
xDRuby, ¿o es un espacio en blanco?
Bueno, ¿alguien puede adivinar lo que hago?
Sugerencia pequeña: si desea ejecutarlo, copie todo el código en el cuadro de código;)Actualización: ¿Parece que copiar el código no funciona debido a problemas relacionados con Unicode? ¡Bifurcar la versión en línea y luego copiar el código parece funcionar! Esté atento al espacio en blanco;)
Versión en línea
Salida:
Explicación:
method_missing
se llama, lo que guarda la longitud de los fragmentosat_exit
los caracteres se forman concatenando los dígitos, etc. y se evalúa la expresión, en este casoputs 'Hello world!'
fuente
Adelante
Creemos una nueva TAREA.
fuente
PHP:
$ palabras = array ('Heart', 'eagle', 'low', 'lonely', 'over', 'SPACE', 'Window', 'optimus', 'rotting', 'list', 'done', ' !hecho');fuente
Brainfuck
Explicación
fuente
C ++ 11
Reclamo la bonificación por dependencia del compilador; por ejemplo, esto exhibirá un comportamiento diferente entre gcc 4.8 y gcc 4.9.
Explicación de la dependencia del compilador:
Explicación general del comportamiento:
fuente
Delphi
No estoy seguro de si esto cuenta, pero te diré cómo vi este desafío.
Mi pensamiento era escribir código que no ejecutara lo que esperabas.
fuente
Haskell
fuente
JS
fuente
Matlab
Aquí hay un código que puede realizar varias operaciones, ¿puede predecir el flujo?
Aquí hay una pista:
fuente
Este hace las dos bonificaciones. Echa un vistazo a los spoilers al final para ver qué hace.
Java / Brainf * ck
Brainfuck
Java
fuente
C, 346 caracteres
Este es un programa antiguo que creé hace más de 10 años. En realidad imprime "¡Hola, mundo!" El código usa números palindrómicos en la base 10 y está ligeramente ofuscado.
Ah, casi se me olvida ... El programa solo funciona cuando se inicia sin argumentos de línea de comandos. Además, si lo inicia con 11 argumentos de línea de comando, parece entrar en un bucle infinito. 12 está bien sin embargo.
fuente
Malbolge
Yo diría que ya no puede ofuscarse más que Malbolge;)
fuente
bash / sh, python
Esto produciría:
cuando se ejecuta con
bash
.Cuando se ejecuta el mismo código con
sh
o conbash
modo posix, es decirbash --posix filename
, al decir , no produce ningún resultado.fuente
Ahora, de acuerdo con los comentarios y al leerlo, esto hará 1 de 3 cosas.
Sin embargo, este programa no sigue muy bien su documentación, porque no importa lo que le des ... siempre imprimirá el CUARTO objetivo, que no es nada.
fuente
Javascript
Ni siquiera entiendo esto
Tenga en cuenta que el script no es mío: fuente original
fuente
[] + [] -> ''
,day() - day() -> 0
. A partir de ahí, solo parece obtener la representación decimal de cada carácter, luego hacer un aString.fromCharCode
en ellos.Perl
Este es mi primer intento de escribir código ofuscado. Espero que te guste.
fuente
C ++:
fuente
Ruby 2.0.0 + 1 Bono
Bien, entonces explicaré la bonificación en el spoiler. Pero esto es más o menos una forma indirecta de imprimir "¡Hola Mundo!" en Ruby
Y la salida:
¿Qué?
Y la bonificación:
fuente
Matlab
Código pequeño muy simple, probablemente podría expandirse fácilmente para hacerlo más ofuscado, pero lo he dejado más pequeño como prueba de principio, porque el enfoque es un poco aburrido. Estoy bastante seguro de que es imposible averiguar el resultado sin al menos ejecutar parte del código.
fuente
C ++ o C & Bonus No. 1
REIVINDICACIONES 1. Bono Nº
clang/gcc
vsclang++/g++
.Con C ++
Con C
fuente