Como algunos de ustedes saben, para obtener un idioma en el maravilloso ¡ Pruébelo en línea de Dennis ! , un Hola Mundo! Se requiere programa. Recientemente, Dennis abrió una forma de cargar estos programas desde el sitio web. Aquí hay una combinación JSON de los caracteres utilizados en esos programas, por frecuencia, a partir del 27 de julio de 2017.
Algunos de esos personajes necesitan un poco de amor, por lo que su desafío es generar Hello, World! (preferiblemente en un idioma involucrado en este proceso), utilizando solo los caracteres especificados a continuación. Estos personajes son todos los personajes utilizados entre 10
e 99
(inclusive) veces, junto con los dos personajes más comunes 0
y , porque me siento bien.
0 $&*?ABCDEFGIJKLNPQRSTUXYZ\`gjkqwxyz{}÷≤≥=║_
Su uso del personaje debe basarse en su apariencia en un programa normal, no en su punto de código o valor de byte.
Debe usar al menos un carácter de ese conjunto, por lo que los programas de longitud 0 no son válidos.
Este es el código de golf , por lo que la respuesta más corta en bytes gana.
fuente
Respuestas:
SOGL V0.12 ,
897568 bytesPruébalo aquí!
Nota: cada vez
q
que se hace referencia a la salida, no aparece como salida emergente (cualquiera deoOpP
) no está disponible o genera una nueva línea pendiente.Explicación (desactualizado, lo que cambió es que la "H" se imprime usando las letras del alfabeto):
Dato curioso: todos los caracteres de los caracteres permitidos están en la página de códigos SOGL: D
fuente
palenChars.txt
) se actualizan más aquíPerl 5 , 76 bytes
Esto usa una característica que ha quedado en desuso, pero funciona localmente en mi terminal (que es la versión 5.18.2 como se indicó). En versiones anteriores de Perl
?\w?
es un sinónimo/\w/
que me da acceso a la coincidencia de expresiones regulares y tengo suficientes caracteres para$&
(última coincidencia) y$`
(texto que precede a la última coincidencia). Necesito estos para poder obtener elO
. Genero esto creando unaglob
referencia ($_=\*G
que, emitida a un escalar, es algo así comoGLOB(0x7ffb728028d0)
). Una vez que esté dentro$_
,?B?
coincidirá conB
y$`
contendráGLO
, entonces puedo comparar con el\w$
que se almacenaríaO
en$&
que se inserta en las cadenas que estoy ejecutando stringwise-AND para crear el resto del texto, el cuerpo de la cadena está en minúsculas usando\L
.Pruébalo en línea! - utiliza
/\w/
en lugar de?\w?
como la versión de Perl en TIO es demasiado nueva.Perl 5 , 65 bytes
Esto es un poco más engañoso ya que se basa en el nombre de archivo en TIO (que es
.code.tio
), por lo que realmente no creo que esto esté compitiendo, ¡pero estuve contento con el resultado!Pruébalo en línea!
fuente
-p
está bien. Buen trabajo, esto es lo que esperaba cuando pregunté esto :)Unario , 7 * 10 182 bytes
Unario es Brainfuck convertido a binario convertido a unario usando
0
como contador. Esencialmente, condensa un programa Brainfuck en un número y la salida es ese número de0
s. Suelen ser programas muy grandes.No pegaré el programa aquí porque no sé cuánto texto permite SE, pero apuesto a que es menor que esto. En cambio, pegaré el número preciso de ceros en esta respuesta:
Como esta es una respuesta bastante barata, garantizada que no será la más corta, y simplemente la copié , estoy haciendo de esto una publicación de wiki.
fuente
05AB1E ,
13710695 bytesPruébalo en línea!
-31 gracias a @Adnan por señalar que podría usar la base 108.
- ?? Gracias a @Riley por señalar algunas cosas mal.
Versión anterior (método diferente):
05AB1E ,
211186166 bytesPruébalo en línea!
¡Jaja! ¡Y AQUÍ PENSÉ QUE ESOLANGS NO DEJÓ OPORTUNIDAD PLAUSIBLE!
Primero obtenemos 255 almacenados en X:
Luego, usando el mismo truco de longitud, empujamos:
1296995323340359595058728869715
Donde solo usamos en
0<space>
lugar del truco de longitud para los ceros.Luego, finalmente, empujamos el 255 que almacenamos y convertimos de 255 a base 10 :
Todavía jugando golf usando los otros caracteres permitidos, y la duplicación, será un minuto.
fuente
Beatnik , 148 bytes
Pruébalo en línea!
Explicación
Beatnik basa la instrucción ejecutada en función del puntaje de scrabble de la palabra. Aquí hay una explicación abreviada:
fuente
Pollas de agua (v2.0),
3423983923866749716 bytesCreo que esto se puede jugar un poco, Moorhens no es un lenguaje fácil para trabajar.
Explicación
Moorhens es un lenguaje basado en palabras de diccionario. Cada palabra corresponde a una operación basada en su hash. Las cinco operaciones utilizadas aquí son
xU
,ER
,XI
,KA
, yAA
xU
incrementa los TOSER
pone un nuevo cero en la pila.XI
disminuye los TOSKA
duplica los TOSAA
rueda los TOS hacia abajoEmpujamos cada letra con aplicaciones sucesivas de estas operaciones.
fuente
Glifo , 480 bytes
Pruébalo en línea!
fuente
Headsecks , 78 bytes
fuente
JavaScript doble, 318 bytes
No estoy seguro de si eso está permitido, no pude hacerlo usando el intérprete de JavaScript una vez. Es similar al uso,
eval()
pero en su lugar estoy usando el intérprete dos veces: (Pruébelo en la consola para volver a imprimir el resultado)Pruébalo en línea!
Evalúa a:
Pruébalo en línea!
Que se evalúa como
Hello, World!
fuente
Smallf ** k , 266 bytes:
En realidad, los personajes son un poco irrelevantes. Es solo una cuestión de si cada personaje tiene o no un punto de código par o un punto de código impar. Por lo tanto, hice un esfuerzo para usar todos los caracteres disponibles (excepto los caracteres multibyte) (aunque como era aleatorio, no hice un esfuerzo para garantizarlo).
fuente
ord
y 0 para parord
), por lo que podría decir que esto es 33.25 bytes xD'5'
ocupa el punto de código normal'A'
, no está permitido usarlo'5'
.Pyke ,
133144 bytesPruébalo en línea!
Un horrible desastre de código que casi con certeza se puede acortar ... Construye un carácter a la vez.
fuente
cc ,
164162 bytesPruébalo en línea!
Es probable que haya un enfoque mejor / más interesante. Intenté usar el truco ASCII + 256 que
dc
tiene, pero que también genera caracteres adicionales (incluso si no se imprimen), y una vez que llegué a 'o', el maravillosamente primo 111, tuve problemas incluso para obtener un valor de 111+ (múltiplo de 256) que se factorizó limpiamente. Así que aquí hay una solución bastante sencilla (aunque golfizada cuando sea posible):In
dc
,z
es un comando que empuja la profundidad de la pila sobre la pila. Eso significa que podemos usarlo como un incremento. Así es como creo la mayoría de mis valores ASCII para este desafío (impreso conP
), con el que empujo a las pilas con nombreS
y vuelvo a la pila principalL
.dc
le permite usar los valores hexadecimales AF incluso cuando la raíz de entrada es decimal (predeterminado)Afortunadamente, nuestra primera letra, 72, es un múltiplo de 12, por lo que guardo un byte o dos aquí multiplicando 6 * 12 e imprimiendo inmediatamente (Mi versión de 164 bytes usó la multiplicación desde el principio para obtener 72 ('H'), que era ligeramente inteligente pero un remanente de un intento anterior, y un desperdicio de bytes. Ahora, empiezo incrementando y guardando el espacio, el signo de exclamación y la coma, que están fuera de servicio y, por lo tanto, aún no se pueden imprimir. A continuación, llego a la 'H', que imprimo inmediatamente, antes de llegar a 'W', que debo guardar para más adelante.zzzzzzzC*P
).Simplemente imprimo cuando presiono la 'e', luego incremento hasta 'l'. Imprimo dos de esos y guardo uno. Cuando llego a 'O', lo primero que pensé que tendría que salvar a uno de los de más adelante, pero todo es tipo de fin en este punto. Imprimo una 'o', recupero mi coma, espacio y 'W' de antes, y ahora vuelvo a 'o'. Imprimo esto e incremento algunos hasta el valor más alto necesario, 'r' (114), que imprimo antes de cargar e imprimir el 'l' que guardé antes.
¡Casi termino! 'd' es el valor ASCII 100, que se crea fácilmente multiplicando 10 * 10 (menos bytes que haberlo almacenado antes y cargarlo ahora). El valor hexadecimal
A
es 10, al igual que nuestra raíz de entrada que podemos recuperar con el comandoI
. Multiplique esos, imprima, y luego cargue e imprima nuestro signo de exclamación de antes. ¡Hola Mundo!fuente